4 回答

TA貢獻1836條經驗 獲得超5個贊
Javascript中一個函數的this關鍵字的行為相對其它語言有些不同。在嚴格模式和非嚴格模式間也有區別。
在大多數情況下,this的值由函數如何調用來決定。this值不能在函數執行過程中賦值設置,并且每次函數調用時this值可能也不相同。ES5通過添加bind方法設置函數的this值,無論函數如何被調用。(this值永久不變)
全局上下文中:
全局執行環境中(函數外部),無論在與不在嚴格模式下this指向全局對象。
console.log(this.document === document); //true
//在web瀏覽器中,window對象即是全局對象:
console.log(this === window); // true
this.a=37;
console.logn(window.a); //37
function上下文
在函數內部,this值依賴于函數如何調用。
簡單調用:
function f2(){
"use strict";//使用嚴格模式
return this;
}
f2() === undefined;

TA貢獻1943條經驗 獲得超7個贊
在js中,調用function的apply()或者call()可以覆蓋this原先的指向。但是call()和apply()的用法略有不同;
用apply()時,參數需要用Array;
JavaScript有一套完全不同于其它語言的對this的處理機制。

TA貢獻1831條經驗 獲得超9個贊
就是函數本身的意思 比如 function demo(){ this.width = 100; this.height = 200; return this } 這里的意思就是本身這個函數的寬度 高度用this代替 其實它的原型是 function demo() { var p = new Object(); p.width = 100; p.heighr = 200; return p; } 和這種方法是一個效果

TA貢獻1872條經驗 獲得超4個贊
這么寫就會好理解些
document.getElementById("textinput").onclick=function(){
alert(this.value);
}
這樣就好理解了,this就是指 document.getElementById("textinput")
添加回答
舉報