天天看點

關于onclick="fn()"和onclick=function(){}中this指向的差別

1、在标簽中事件綁定的this指向:

input type= "button" id= "btn" onclick= "f()"> < script> function f() { console. log(this) } </ script>

輸出的對象是window

2、通過js綁定的事件this指向:

input type = "button" id = "btn" >

< script>      var btn = document. getElementById( "btn") btn. onclick = function() { console. log(this) } </ script>

輸出的對象是input标簽

這兩種情況是我們應用最多的,那麼可以通過第三種情況來了解一下為什麼

3、在标簽中寫的js事件this指向:

< input type= "button" id= "btn1" onclick= "console.log(this)">

輸出的對象還是input标簽

對第2種情況我們可以了解,那第1種和第3種情況我們可以視為在事件綁定的時候又包了一層函數。

那麼3相當于

btn. onclick = function() { console. log(this) } 而1就相當于

btn. onclick = function(){ function f(){ console. log(this) } }

繼續閱讀