Javascript MooTools类

Javascript MooTools类,javascript,mootools,Javascript,Mootools,我所有的MooTools类都是这样的: myClass = new Class({ initialize: function(options) { if (optionsType === 'object') { for (var key in options) { this[key] = options[key]; } } } }); 这有必要吗?难道Moo

我所有的MooTools类都是这样的:

myClass = new Class({

    initialize: function(options) { 

        if (optionsType === 'object') {
            for (var key in options) {
                this[key] = options[key];
            }
        }

    }

});
这有必要吗?难道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
在函数中也有另一种方法可以做到这一点,对对象使用$merge(从1.3开始就不推荐使用)或Object.merge generic:

var myfunc = function(options) {
    var options = Object.merge({
        foo: "bar"
    }, options);

    alert(options.foo);
};

myfunc({foo: "fighters"});