今天,我正在实现一个点击列表器,偶然发现以下内容:
function click (val) {
console.log(val)
}
function random (val) {
console.log(val)
}
div:hover {
background-color: blue;
cursor: pointer;
}
<div onclick="click(1)">test1</div>
<div onclick="random(1)">test2</div>
用于处理事件的方法不能命名为“ click”。点击不是for
,if
或while
之类的保留关键字,为什么我不能使用它呢?还有其他我不能使用的函数名称吗?
答案 0 :(得分:1)
onclick
属性代码在它所属的DOM元素的上下文中进行评估。由于元素has click
function,它在全局click
处显示阴影。
一个example:
<div onclick="
console.log(
typeof click === 'function', // true
this.click === click, // true
document.querySelector('div').click === click // true
);
">test</div>
像这样的情况证实,现代实践中尽可能避免使用全局变量并使用addEventListener
而不是onclick
是合理的。