【发布时间】:2020-05-26 10:33:40
【问题描述】:
第一个和第二个代码有效,但第三个无效?我试图理解它,但找不到任何东西。如果有人可以解释它或参考一些文档,我非常感谢!谢谢!
工作正常:
<p id="p" onclick="myFunc(this)">foo</p>
<script>
function myFunc(el){
console.log(el.innerHTML) // outputs "foo"
}
</script>
也可以正常工作:
<p id="p">foo</p>
<script>
document.querySelector('#p').addEventListener('click', function (event) {
console.log(this.innerHTML);
});
</script>
不会工作:
<p id="p">foo</p>
<script>
document.querySelector('#p').addEventListener('click', (this) => {
console.log(this.innerHTML);
});
</script>
第二个和第三个代码的唯一区别是第二个调用“function(event){}”,第三个调用“(this)=>{}”。我以为“this”会指向节点,但它似乎指向鼠标事件。我说的对吗?
为什么 "this" 在 "onclick="myFunc(this)" 中是有效参数,但在 "addEventListener('click', (this){})" 中却不是?
【问题讨论】:
-
第三个“this”是p元素
标签: javascript this addeventlistener innerhtml