下面是乙個問題,物件方法中定義的子函式,子函式執行時this指向**?
三個問題:
(1)以下**中列印的this是個什麼物件?
(2)這段**能否實現使mynumber.value加1的功能?
(3)在不放棄helper函式的前提下,有哪些修改方法可以實現正確的功能?
var mynumber =
helper(i);
}}mynumber.add(1);
1.this指向window物件(因為匿名函式的執行具有全域性性,所以其this物件指向window);
2.不能實現value加1(每個函式在被呼叫時都會自動取得兩個特殊變數,this和arguments,內部函式在搜尋這兩個物件時,只會搜尋到其活動物件為止,所以不能實現訪問外部函式的this物件);
3.修改**實現正確功能
方法一:
var mynumber=
helper(i);
}}mynumber.add(1);
方法二:
var mynumber=
}}mynumber.add(1);
方法三:
var mynumber=
}mynumber.add(1);
JS閉包中的this問題
首先看一段 var obj var c obj.get console.log c 那麼輸出c的值為多少呢?看下圖 這說明obj.get 只是返回乙個匿名函式,並沒有執行。所以轉到this,相應的 為 var name ss var obj var val obj.get console.log v...
js中this的指向 作用域和閉包
1 this在執行的時候才會確定指向的是什麼,不執行無法確定。this的幾種不同的使用場景 建構函式 物件屬性 普通函式 建構函式 this先指向乙個空物件,再對this賦值,最後返回this function foo name this.name name return this var a ne...
javascript閉包中的this指向問題
關於this物件,它是基於當前執行環境所繫結的 var name the window var object console.log object.getname the window 每個函式在被呼叫時都會自動取得兩個特殊變數 this和arguments。內部函式在搜尋這兩個變數時,只會搜尋到其...