Jam*_*ead 2 javascript mootools
我所有的MooTools类都是这样的:
myClass = new Class({
initialize: function(options) {
if (optionsType === 'object') {
for (var key in options) {
this[key] = options[key];
}
}
}
});
Run Code Online (Sandbox Code Playgroud)
这有必要吗?MooTools是否有内置的功能可以执行此操作?
或者我需要创建一个超类?
嗯,在一个理想的世界里,将选项实现到它中,它为你做到了:
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
Run Code Online (Sandbox Code Playgroud)
还有另一种在函数中执行此操作的方法,使用$ merge(自1.3以来弃用)或对象的Object.merge泛型:
var myfunc = function(options) {
var options = Object.merge({
foo: "bar"
}, options);
alert(options.foo);
};
myfunc({foo: "fighters"});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |