關於JavaScript中this的用法網路中已經有較多比較詳盡的介紹,可以參考本文的參考學習資料和網路。本文結合網路收集整理,嘗試以一種簡易的方式闡述JavaScript中this的用法,希望對大家關於JavaScript中this用法的快速理解有所幫助。
1. this用法例項
複製程式碼 程式碼如下:
r = “red”;
var o = { color: “blue” };
function sayColor(){
alert(r);
}
sayColor(); //”red”
olor = sayColor;
olor(); //”blue”
2. this用法簡易理解
this指向哪裡:
this執行的環境(the context object),或者簡單理解為:this所在函式被呼叫時的當前作用域。
一段例項程式碼立刻明白:
複製程式碼 程式碼如下:
var fun = function() {
(this);
}
fun();// console: window,fun 的執行context為window,即this所在函式(fun())被呼叫時的當前作用域為window。
new fun();//console: fun,fun 的執行context為fun物件內,即this所在函式(fun())被呼叫時的'當前作用域為fun物件內。
3. this用法的一個特殊情況
(1)情況:
複製程式碼 程式碼如下:
function demo() {
e = om();
}
點選這個button之後,你會發現按鈕的value值沒有改變。
原因:在本程式碼執行的情況下this指向的是window物件。
複製程式碼 程式碼如下:
var button = lementById("aButton");
function demo() {
e = om();
}
ick= demo;
點選這個button之後,程式可正常執行。
(2)原因解釋:
複製程式碼 程式碼如下:
var button = lementById("aButton");
function demo() {
e = om();
}
ick= demo;
alert(ick);
得到的輸出是:
複製程式碼 程式碼如下:
function demo() {
e = om();
}
複製程式碼 程式碼如下:
var button = lementById("aButton");
function demo() {
e = om();
}
alert(ick);
得到的輸出是:
複製程式碼 程式碼如下:
function onclick() {
demo();
}