JS中的this指針與C++的this和iOS中的(OC和Swift)self一樣,它出現(xiàn)在某個(gè)函數(shù)當(dāng)中, 指代的是當(dāng)前調(diào)用這個(gè)函數(shù)的對(duì)象本身。
一個(gè)簡(jiǎn)單的例子:
例子:1
/ /聲明一個(gè)函數(shù)test,彈出this
function test(){
alert(this)
}
btn1.onclick = function(){
test()
}
運(yùn)行:

直接調(diào)用彈出this值.png
這里直接彈出了Window。
做一點(diǎn)點(diǎn)修改:
例子:2
btn1.onclick = function(){
alert(this)
}

在btn的點(diǎn)擊中調(diào)用.png
這里彈出了input類型,也即是btn。
解釋:
上面的例子1中,雖然btn的點(diǎn)擊事件最終觸發(fā)了彈窗,但是間接調(diào)用,實(shí)際調(diào)用這個(gè)是window,例子中沒有寫出來。實(shí)際的完整函數(shù)是:
function test(){
window.alert(this)
}
btn1.onclick = function(){
test()
}
因而根據(jù)上面的描述,this指的是調(diào)用者本身,所以打印的是window。
例子2中,調(diào)用者是btn自己,因此打印的是input。