J'ai défini une classe nommée MyClass
et je l'ai défini deux méthodes myMethod1
et myMethod2
pour elle:Comment accéder à une méthode de l'objet parent d'une fermeture?
function MyClass() {}
MyClass.prototype.myMethod1 = function() {...};
MyClass.prototype.myMethod2 = function() {...};
intérieur myMethod1
, j'utilise jQuery et il y a une fermeture de rappel, il défini:
MyClass.prototype.myMethod2 = function() {
$.jQuery({success: function(data) {
this.myMethod2();
}, ...});
}
maintenant le problème est que this
ne fait plus référence à MyClass
. La question est comment puis-je y faire référence? Au moment où je l'ai assigné à une variable nommée thisObj
et accéder ainsi:
MyClass.prototype.myMethod2 = function() {
var thisObj = this;
$.jQuery({success: function(data) {
thisObj.myMethod2();
}, ...});
}
Y at-il une meilleure façon d'accéder MyClass.this
de la fermeture imbriquée dans myMethod2
?
Merci d'avance.
Ou 'self'. Je ne peux pas * supporter * ça, c'est complètement trompeur. :-) –
@ T.J & @Daniel: Ou peut-être 'parent' comme dans le contexte parent de la fermeture? Cependant, comme c'est la convention d'utiliser 'that' ou' self', alors c'est bien ... :-) – Behrang
Les deux réponses méritent une coche, mais comme je ne peux pas le faire, je coche la première réponse , et votez tous les deux. – Behrang