8
入れ子関数内のJavascript「this」ポインタ
ネストされた関数のシナリオで「this」ポインターがどのように扱われるかについて質問があります。 次のサンプルコードをWebページに挿入するとします。ネストされた関数「doSomeEffects()」を呼び出すと、エラーが発生します。Firebugをチェックインしたところ、ネストされた関数にいるとき、「this」ポインターが実際にはグローバルな「ウィンドウ」オブジェクトを指していることがわかりました。オブジェクトの関数内でネストされた関数を宣言したので、関数に対して「ローカル」スコープを持つ必要があると考えたため、私は何かを正しく理解していないはずです(つまり、「this」ポインタは次のようにオブジェクト自体を参照しています。それが私の最初の「if」ステートメントでどのようになっているか)。 任意のポインタ(しゃれは意図されていません)をいただければ幸いです。 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, …