Один важный аспект, который следует помнить о Javascript, это то, что это прототип языка.Функции могут быть объектами, и на объект может быть наложено что угодно, что часто влияет на связанные объекты в процессе.Из-за этого не существует официального способа «расширить» объект.Это концепция, которую мне до сих пор трудно понять.
Javascript по большей части «действует» как любой другой язык ООП, за некоторыми исключениями, а именно расширяющими объектами (http://jsweeneydev.net84.net/blog/Javascript_Prototype.html).
После обширных исследований,Я нашел очень, очень легкий способ имитации расширяющихся объектов (я использую его в своем GameAPI). Первое поле - это родительский объект, второе - это объект, который расширяется.
extend : function(SuperFunction, SubFunction) {
//'Extends' an object
SubFunction.prototype = new SuperFunction();
SubFunction.prototype.constructor = SubFunction;
},
Эта ссылка может прояснить некоторые проблемы и заблуждения: http://www.coolpage.com/developer/javascript/Correct%20OOP%20for%20Javascript.html
Лично я склонен быть антифреймворком, и я еще не видел фреймворка, который не заставляет программиста существенно изменитьсяих стиль программирования в этом отношении в любом случае больше возможностей, если вы его найдете, но есть вероятность, что он вам действительно не нужен.
Мой лучший совет - попытаться приспособиться к прототипическому стилю Javascript, а не к силе.старые методологии на нем. Я знаю, что это сложно, я все еще пытаюсь сам.
Удачи в поисках огня.