вы должны использовать класс Options как миксин и setOptions, чтобы выполнить слияние правильно:
var tclass = new Class({
Implements: [Options],
initialize: function(n) {
this.setOptions(n);
},
get: function() {
return this.options.name;
}
});
var a = new tclass({
name: 'a'
});
var b = new tclass({
name: 'b'
});
alert(a.get()); // a
сказав, что в вашем примере я получаю другой ответ - как и ожидалось - но через $ mergeи не расширять (объединение отменяет связь): http://www.jsfiddle.net/dimitar/cqd8P/
но какой в этом смысл, поскольку у вас нет this.options, который существует (вам нужно передать объект, чтобы расширить его / объединить с другим).вы также можете просто сделать:
this.options = {
name: n
};
вы действительно хотите this.setOptions
пс для mootools 1.11 Реализация выполняется по-другому:
var tclass = new Class({
initialize: function(n) {
this.setOptions(n);
},
get: function() {
return this.options.name;
}
});
tclass.implement(new Options);
var a = new tclass({
name: 'a'
});
var b = new tclass({
name: 'b'
});
alert(a.get()); // a