il this è tra i return più usati di prototypes e non, per il semplice motivo che ti permette di fare questo:
L'utilizzo di method invece è per non perdere il costruttore dalle istanze, altro argomento mai capito a pieno da molti frameworks ...codice:Function.prototype.method = function(name, func){ this.prototype[name] = func; return this; }; function Parenizor(){}; Parenizor .method('setValue', function(value){this.value = value;}) .method('getValue', function(){return this.value;}) .method('toString', function(){return '('+this.getValue()+')';}) ; var instance = new Parenizor(); instance.setValue(3); alert(instance); // (3)
Quindi con method non sovrascrivi la prototype nativa, ed in core, come nel linguaggio, il costruttore sarà quello giusto.codice:function Parenizor(){}; Parenizor.prototype = { doStuff:function(){ alert(this.constructor); } }; (new Parenizor).doStuff(); // Object function Parenizor2(){}; Parenizor2.prototype.doStuff = function(){ alert(this.constructor); }; (new Parenizor2).doStuff(); // Parenizor2
In Base ed altri sistemi, il mio extend compreso, il costruttore viene comunque ridefinito perchè se un oggetto contiene un parametro constructor e viene assegnato, anche fosse in for(in) ad una prototype, si rischia di perdere il costruttore.
[edit]
se vuoi te lo spiego, ma ti prego dammi un link che non avessi mai letto più di mezzo post di Dustin Diaz che è più un designer che un programmatore ... e non so di cosa tu stia parlandoOriginariamente inviato da whisher
si una riga sotto
ad ogni modo inherit è veramente tosto e molto
ostico da digerire alla prossima![]()
![]()



Rispondi quotando
quando ti prendono queste cisti
