Grazie della segnalazione, libro interessante.Originariamente inviato da whisher
Colgo l'occasione per segnalare
http://www.packtpub.com/object-orien...libraries/book
da 10 e lode![]()
e meditare su questo codice![]()
Codice PHP:
function Hero(name) {
this.name = name;
}
var h = Hero('Leonardo');
alert(name);
alert(window.name);
function C2() {
this.a = 1;
return {b: 2};
}
var c2 = new C2();
alert(typeof c2.a);
alert(c2.b);
![]()
Nel secondo caso (classe C2) non si avrà mai accesso ad un oggetto della classe C2 perché vai a modificare il return this implicito che avviene di default quando istanzi un oggetto, e al posto di quello gli dici di restituire sempre l'oggetto {b: 2} creato a runtime, che non ha alcuna proprietà "a" definita.
Il primo caso invece rivela la criticità di IE con cui mi sono scontrato: se nella classe Hero si prova a sostituire
this.name = name
con
name = name
sembra di capire che il parser di IE non legge l'espressione da destra verso sinistra come dovrebbe.
La variabile name che si vuole definire prima dell'operatore di assegnazione "=" non ha ancora un valore ma IE la mette già nello stack, e se è uguale a sé stessa vuol dire che non ha valore.