我所有的MooTools课程都是这样的:
myClass = new Class({
initialize: function(options) {
if (optionsType === 'object') {
for (var key in options) {
this[key] = options[key];
}
}
}
});
这有必要吗? MooTools是否有内置的内容可以执行此操作?
或者我是否需要创建一个超类?
答案 0 :(得分:9)
var myclass = new Class({
Implements: [Options],
options: { // default options:
foo: "foobar"
},
initialize: function(options) {
this.setOptions(options);
alert(this.options.foo);
}
});
new myclass({foo: "bar"}); // alerts bar
new myclass(); // alerts foobar
还有另一种方法可以在函数中执行此操作,使用$ merge(自1.3以来弃用)或对象的Object.merge泛型:
var myfunc = function(options) {
var options = Object.merge({
foo: "bar"
}, options);
alert(options.foo);
};
myfunc({foo: "fighters"});