2010-02-03 6 views
2

Toutes mes classes MooTools ressemblent à ceci:classes MooTools

myClass = new Class({ 

    initialize: function(options) { 

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

    } 

}); 

Est-ce nécessaire? MooTools ne possède-t-il pas quelque chose de construit pour moi?

Ou ai-je besoin de créer une super-classe?

Répondre

9

erm, dans un monde idéal, mettre en œuvre les options en elle, elle le fait pour vous:

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 

il y a une autre façon de le faire dans des fonctions aussi, en utilisant la fusion de $ (dépréciée depuis 1.3) ou un objet. fusionner générique pour les objets:

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

    alert(options.foo); 
}; 

myfunc({foo: "fighters"});