在这个例子中,"this"的上下文是什么?

She*_*ida 22 javascript this

为什么这两行创建不同的值this

<div>
  <a href="#" id= "li2" onclick="alert(this)"> a link </a> 
</div>
<p id= "p2" onclick="alert(this)"> a paragraph </p>
Run Code Online (Sandbox Code Playgroud)

第一个用文件的URI警告,第二个用"HTML段落元素"警告.换句话说,第二个上下文是DOM元素,但第一个是主要上下文.

我做的这个研究有很多,其中一些是有点过我的头,所以如果有人知道答案,你可以哑下来给我吗?

Roc*_*mat 28

在内联JavaScript事件中,this是触发事件的元素.这些都是onclick事件,this您点击的元素也是如此.

使用时alert(),它将其参数转换为字符串.将<a>元素对象转换为字符串时,将获得其href值.当您将<p>元素转换为字符串时,您只需获得[object HTMLParagraphElement]它,因为它没有自定义toString.

Revalent docs:https://developer.mozilla.org/en-US/docs/Web/API/URLUtils/toString