2010-02-03 57 views
2

我所有的MooTools的類看起來是這樣的:MooTools的類

myClass = new Class({ 

    initialize: function(options) { 

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

    } 

}); 

這個必要嗎? MooTools不會爲我提供內置的功能來執行此操作嗎?

還是我需要創建一個超類?

回答

9

ERM,在一個理想的世界,實現選項到它,它會爲你:

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 

有另一種方式來做到這一點功能也使用$合併(因爲1.3不建議使用)或對象。合併通用對象:

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

    alert(options.foo); 
}; 

myfunc({foo: "fighters"});