J'ai une question concernant le traitement du pointeur "this" dans un scénario de fonction imbriquée.
Supposons que j'insère l'exemple de code suivant dans une page web. J'obtiens une erreur lorsque j'appelle la fonction imbriquée "doSomeEffects()". J'ai vérifié dans Firebug et cela indique que lorsque je suis dans cette fonction imbriquée, le pointeur "this" pointe en fait vers l'objet global "window" - ce à quoi je ne m'attendais pas. Je ne dois pas avoir bien compris car je pensais que puisque j'avais déclaré la fonction imbriquée dans une fonction de l'objet, elle devait avoir une portée "locale" par rapport à la fonction (c'est-à-dire que le pointeur "this" devait se référer à l'objet lui-même, comme dans ma première instruction "if").
Toute indication (sans jeu de mots) serait appréciée.
var std_obj = {
options : { rows: 0, cols: 0 },
activeEffect : "none",
displayMe : function() {
// the 'this' pointer is referring to the std_obj
if (this.activeEffect=="fade") { }
var doSomeEffects = function() {
// the 'this' pointer is referring to the window obj, why?
if (this.activeEffect=="fade") { }
}
doSomeEffects();
}
};
std_obj.displayMe();