vous devez utiliser la classe d'options comme mixin et setOptions pour faire la fusion correctement:
var tclass = new Class({
Implements: [Options],
initialize: function(n) {
this.setOptions(n);
},
get: function() {
return this.options.name;
}
});
var a = new tclass({
name: 'a'
});
var b = new tclass({
name: 'b'
});
alert(a.get()); // a
ayant dit que, dans votre exemple, je reçois une réponse différente - comme prévu - mais via fusionner $ et étendre (fusion ne dissocie): http://www.jsfiddle.net/dimitar/cqd8P/
encore ce qui est le point dans ce que vous avez pas this.options qui existe (vous devez passer sur un objet pour étendre/fusionner avec une autre) . vous pouvez aussi bien le faire:
this.options = {
name: n
};
vous voulez vraiment this.setOptions
P.S. pour mootools 1.11 Les implémentations se font différemment:
var tclass = new Class({
initialize: function(n) {
this.setOptions(n);
},
get: function() {
return this.options.name;
}
});
tclass.implement(new Options);
var a = new tclass({
name: 'a'
});
var b = new tclass({
name: 'b'
});
alert(a.get()); // a
non, ce n'est pas correct. il utilise le mootools 1.3 api appelant au prototype d'objet –
OUI bébé, c'est tout (mootools 1.11)! J'ai raté le bois pour les arbres. – sumflow
oh mon cher. Je vais partir maintenant. vérifier l'exemple révisé via les options mixin et mootools 1.11 (à partir http://docs111.mootools.net/Class/Class-Extras.js) –