JS中的this指針與C++的this和iOS中的(OC和Swift)self一樣蒲障,它出現(xiàn)在某個函數(shù)當(dāng)中瘫证, 指代的是當(dāng)前調(diào)用這個函數(shù)的對象本身。
一個簡單的例子:
例子:1
/ /聲明一個函數(shù)test背捌,彈出this
function test(){
alert(this)
}
btn1.onclick = function(){
test()
}
運行:
直接調(diào)用彈出this值.png
這里直接彈出了Window毡庆。
做一點點修改:
例子:2
btn1.onclick = function(){
alert(this)
}
在btn的點擊中調(diào)用.png
這里彈出了input類型,也即是btn毅否。
解釋:
上面的例子1中蝇刀,雖然btn的點擊事件最終觸發(fā)了彈窗,但是間接調(diào)用吞琐,實際調(diào)用這個是window,例子中沒有寫出來顽分。實際的完整函數(shù)是:
function test(){
window.alert(this)
}
btn1.onclick = function(){
test()
}
因而根據(jù)上面的描述卒蘸,this指的是調(diào)用者本身雌隅,所以打印的是window。
例子2中修械,調(diào)用者是btn自己检盼,因此打印的是input。