<td><a href="javascript:alert(this)">dele</a></td>
<li onclick ="alert(this)"></li>
這裏,爲什麼「a」的「this」是窗口,「li」的「this」是HTMLLiElement?javascript「這個」問題錯誤?
<td><a href="javascript:alert(this)">dele</a></td>
<li onclick ="alert(this)"></li>
這裏,爲什麼「a」的「this」是窗口,「li」的「this」是HTMLLiElement?javascript「這個」問題錯誤?
當點擊<td><a href="javascript:alert(this)">dele</a></td>
,則alert(this)
確實在當前頁面上不運行。它作爲匿名函數與上下文分開運行,因此Window
。
BUT,在<li onclick ="alert(this)"></li>
,具有其爲HtmlLiElement
的<li>
上下文中的同一頁上的alert(this)
運行情況。
當調用事件處理程序時,上下文就是事件的目標。但處理href
屬性不是事件處理程序,那裏沒有目標,因此上下文爲window
。
用途:
<a href="#" onclick="alert(this)">dele</a>
在您的使用情況this
由如何要調用alert
確定。首先,您使用href
在全局上下文中執行語句。在第二種情況下,您已將事件處理程序附加到li
元素,這意味着執行上下文就是該元素。
這是一個移動目標 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/這個 – Unlockedluca