4 回答

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

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

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

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