При расширении класса sproutcore следует иметь в виду две вещи.
Сначала необходимо определить свой класс, прежде чем что-то смешать с ним.Итак, начните с создания вашего класса / объекта с
MyFooClass = SC.Object.extend({ ... });
или
MyFooClass = SC.Object.create({ ... });
, тогда как первый оператор создаст класс, а второй оператор - конкретную реализацию класса (если говоритьв объектно-ориентированной терминологии объект).Обычно, если вы используете SC.Object.create (), цель состоит в том, чтобы создать singleton-объект, в противном случае определите ваш класс с помощью SC.Object.extend () и используйте определенный класс для создания объектов вашего определенного класса с
myFooObject = MyFooClass.create();
Поэтому убедитесь, что ваш класс или объект, который вы хотите смешать в методах, определен первым и уже находится в области видимости, когда вы хотите его использовать.
Во-вторых, если вы хотите смешать дополнительные методы илиСвойства в существующем классе или объекте используют SC.mixin следующим образом:
SC.mixin(MyFooClass, {
yourMixedInMethod: function() {
console.log('mixed in method called');
}
});
Вы можете делать это и с объектами, но помните, что только данный объект получает смешанный метод, а не все экземплярыкласс.Если вы хотите, чтобы все экземпляры получили дополнительные функциональные возможности, вы должны добавить их в определение класса.