MooTools课程

时间:2010-02-03 02:41:52

标签: javascript mootools

我所有的MooTools课程都是这样的:

myClass = new Class({

    initialize: function(options) { 

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

    }

});

这有必要吗? MooTools是否有内置的内容可以执行此操作?

或者我是否需要创建一个超类?

1 个答案:

答案 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"});