Как стать автором
Обновить

Комментарии 11

Элегантненько. Вот за возможность таких решений, четкую нотацию и продуманность лично мне и нравится этот фреймворк. Не столь популярен как jQuery, но, черт возьми, как просто в нем реализуются многие аспекты кодинга — блеск! За статью спасибо, обязательно буду иметь ввиду.
Спасибо за все расширяемости JavaScript.
Если бы он избавился от статуса IE Killer, тогда он был бы пожалуй даже лучше jQuery.
НЛО прилетело и опубликовало эту надпись здесь
В каждой шутке есть доля правды. И эта правда довольно сильно мешает разрабатывать приложения =\
У Mootools и правда есть проблемы с IE.
Просветите, пожалуйста.
Именно. Любимый фрейм.
Я конечно не разбираюсь в mt, только начал осваивать. Но что-то мне подсказывает, что в этом примере оно должно вести себя немного иначе :) Проблема с биндами появляется при наследовании…

var Mutators = new Class({
Implements: Options,
Binds: 'sayBug',
options: {
variable: 'bug'
},
initialize: function(opt) {
this.setOptions(opt);
},
sayBug: function() {
console.log(this.options.variable);
}
});

var MutatorsBug = new Class({
Extends: Mutators,
initialize: function(opt) {
this.parent(opt);
},
})

var xx = new MutatorsBug({variable: 'ok'});
xx.sayBug();

когда работаем с его родителем, то всё ок…
var yy = new Mutators({variable: 'ok'});
yy.sayBug();
так происходит, потому что this в sayBug указывает в другое место. А точнее this==instance, где instance из Class.Mutators.Extends:

Extends: function(self, klass){
var instance = new klass($empty);
delete instance.parent;
delete instance.parentOf;
...
Извините, но это похоже на костыль, или просто пример какой-то неудачный.

Чем не угодили замыкания? С их помощью можно организовать объекто-классы, и добиться вожделенного^Wжелаемого ООП. (Против ООП ничего не имею, — только против его неправильного использования.)

События и обработчики — это тоже костыли, увы. %)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории