Комментарии 14
НЛО прилетело и опубликовало эту надпись здесь
интересная статья
офф: картинка на лого — видел на каком-то моющем средстве. серьезно :)
офф: картинка на лого — видел на каком-то моющем средстве. серьезно :)
+2
кстати, на тему классов: groups.google.ru/group/jfix-javascript-framework/browse_thread/thread/2bfec344ca3c1106?hl=ru
меня всегда угнетала эта копипаста вида PageBase.prototype…
ну и такие загогулины: ViewBase.prototype._Init = function(){ throw «ViewBase._Init is not implemented.»; }
зачем наследовать метод, который кидает исключение «метод не определён»? не надо тащить в яваскрипт костыли из статических языков!
меня всегда угнетала эта копипаста вида PageBase.prototype…
ну и такие загогулины: ViewBase.prototype._Init = function(){ throw «ViewBase._Init is not implemented.»; }
зачем наследовать метод, который кидает исключение «метод не определён»? не надо тащить в яваскрипт костыли из статических языков!
0
Cпасибо за комментарий. Действительно, в JavaScript описания классов в стиле статических языков выглядят не лучшим образом. Все-таки, JavaScript — прототипный язык программирования.
Я использую такой стиль описания классов, потому что нотация статических языков мне привычнее и понятнее. Так же есть положительный опыт применения именно такой нотации на практике.
Повторений PageBase.prototype, действительно, можно избежать вот так:
PageBase.prototype = { Init: function() {… }, _PageLoad: function() {… } }
Однако, так нельзя сделать в подклассах из-за особенностей OO.Extends.
Насчет исключений в абстрактных методах — это просто coding rule. Такие методы сразу видно в коде. Self-documented code. Никакой функциональной нагрузки тут нет.
Я использую такой стиль описания классов, потому что нотация статических языков мне привычнее и понятнее. Так же есть положительный опыт применения именно такой нотации на практике.
Повторений PageBase.prototype, действительно, можно избежать вот так:
PageBase.prototype = { Init: function() {… }, _PageLoad: function() {… } }
Однако, так нельзя сделать в подклассах из-за особенностей OO.Extends.
Насчет исключений в абстрактных методах — это просто coding rule. Такие методы сразу видно в коде. Self-documented code. Никакой функциональной нагрузки тут нет.
-1
Она делает PageBase.prototype = { *base_class_members* } после чего мы своим аналогичным присваиванием затираем в прототипе базовые методы.
Вариант: использовать jQuery.extend.
Для удобства выложил OO.js, содержащий метод Extends, в отдельный файл.
Вариант: использовать jQuery.extend.
Для удобства выложил OO.js, содержащий метод Extends, в отдельный файл.
0
то есть ровно то же самое: pastebin.mozilla-russia.org/93134
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Page-View паттерн в Javascript