4 回答
TA貢獻1836條經(jīng)驗 獲得超5個贊
Javascript中一個函數(shù)的this關鍵字的行為相對其它語言有些不同。在嚴格模式和非嚴格模式間也有區(qū)別。
在大多數(shù)情況下,this的值由函數(shù)如何調(diào)用來決定。this值不能在函數(shù)執(zhí)行過程中賦值設置,并且每次函數(shù)調(diào)用時this值可能也不相同。ES5通過添加bind方法設置函數(shù)的this值,無論函數(shù)如何被調(diào)用。(this值永久不變)
全局上下文中:
全局執(zhí)行環(huán)境中(函數(shù)外部),無論在與不在嚴格模式下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";//使用嚴格模式
return this;
}
f2() === undefined;
TA貢獻1943條經(jīng)驗 獲得超7個贊
在js中,調(diào)用function的apply()或者call()可以覆蓋this原先的指向。但是call()和apply()的用法略有不同;
用apply()時,參數(shù)需要用Array;
JavaScript有一套完全不同于其它語言的對this的處理機制。
TA貢獻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貢獻1872條經(jīng)驗 獲得超4個贊
這么寫就會好理解些
document.getElementById("textinput").onclick=function(){
alert(this.value);
}
這樣就好理解了,this就是指 document.getElementById("textinput")
添加回答
舉報
