J'ai vu un tas d'exemples, mais je n'arrive pas à obtenir un exemple de code pour fonctionner."this" mot-clé à l'intérieur
Prenez le code suivant:
var test = (function(){
var t = "test";
return {
alertT: function(){
alert(t);
}
}
}());
et j'ai une fonction sur window.load comme:
test.alertT();
Que tout fonctionne très bien. Toutefois, lorsque j'essaie de définir explicitement le contexte de t à l'intérieur de l'alerte () dans alertT, je viens d'obtenir indéfini.
J'ai essayé:
var that = this;
alert(that.t); //undefined
J'ai essayé:
return {
that: this,
alertT: function(){
alert(that.t); // undefined!
}
}
et j'ai essayé:
var test = (function(){
var t = "test";
var myObj = this;
return {
alertT: function(){
alert(myObj.t); // undefined!
}
}
}());
ce que je manque? Je dois être en mesure de définir le contexte explicitement pour des choses comme les rappels, etc. J'ai aussi vu des exemples (http://stackoverflow.com/questions/346015/javascript-closures-and-this-context) qui ressemblent à ce que je Je fais, alors pourquoi ça ne marche pas?
Pourquoi voulez-vous définir le contexte explicitement? Vos exemples ne le montrent pas vraiment. Soit vous devrez passer un contexte dans la fonction alertT, soit vous devrez utiliser une méthode bind pour lier la fonction à un contexte de votre choix. – Jakob
L'exemple a été décrémenté pour être facile à lire. Je veux être en mesure d'accéder explicitement à la variable over over fermée afin de la transférer dans une autre fonction passée. – hackerhasid