函数"onclick"即使未在按钮中设置也会被调用

Bar*_*run 6 html javascript

我有以下代码.即使我没有将功能设置为按钮的onclick属性,我也无法弄清楚为什么会发生点击事件.

var x = 0;
var onclick = function() {
  console.log("x = " + ++x);
};
Run Code Online (Sandbox Code Playgroud)
<button type="button" onclick="">Click</button>
Run Code Online (Sandbox Code Playgroud)

dfs*_*fsq 8

那么你设置全局变量onclick,它转换为全局对象window属性onclick.这与您直接设置它基本相同:

window.onclick = function() {
    console.log("x = " + ++x);
};
Run Code Online (Sandbox Code Playgroud)

并且因为您已在整个window对象上设置了click事件,所以它不仅会在按钮单击时触发,而且会在单击文档中的任何内容时触发(除非事件传播停止).