Dopo anni di creazione di applicazioni che utilizzano l'ereditarietà prototipale in JavaScript, ho iniziato ad esplorare utilizzando l'ereditarietà parassitaria. Nonostante la sua insidia principale - almeno per me - di creare potenzialmente più copie di metodi in memoria, come si crea una gerarchia di oggetti, ho constatato che risuona veramente con me con la sua semplicità e il fatto che "nuovo" è reso inutile. Tuttavia, sono bloccato su cosa succede con "questo". La maggior parte degli esempi che ho visto on-line solo graffiare la superficie che mostra come implementare l'ereditarietà parassitaria in questo modo:A cosa fa riferimento questo in JavaScript Parasitic Inheritance?
function foo() {
return {
method1 : function() {...}
}
}
function bar() {
var that = foo();
that.method2 = function() {
//is "this" pointing to bar()?
}
return that;
}
Come ho chiesto nel commento nell'oggetto bar(), significa "questo" si riferiscono al bar () o è lo scopo di questo relegato a method2?
Grazie!
Bello. Grazie! Ora posso andare avanti. È un po 'un salto concettuale, avendo fatto l'eredità prototipale per così tanto tempo. L'eredità parassitaria è familiare, ma abbastanza diversa in cui sono un po 'scomodo, ma è una buona cosa! :) –