我的所有MooTools类都是这样的:
myClass = new Class({
initialize: function(options) {
if (optionsType === 'object') {
for (var key in options) {
this[key] = options[key];
}
}
}
});这有必要吗?难道MooTools没有为我内置一些可以执行此操作的工具吗?
或者我需要创建一个超类?
发布于 2010-02-03 16:20:21
呃,在理想的情况下,在其中实现选项,它会为您做到这一点:
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"});https://stackoverflow.com/questions/2189299
复制相似问题