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) } }