我的HTML代码如下: 我的问题是,为什么单击按钮1时显示“之前”对话框,而单击按钮2时显示“之后”对话框?
<html>
<body>
<button id="b1">Button 1</button>
<button id="b2" onclick="OnClick();">Button 2</button>
<script>
var OnClick = function(){alert("before");};
document.getElementById("b1").addEventListener("click", OnClick);
var OnClick = function(){alert("after");};
</script>
</body>
</html>
JSFiddle链接:https://jsfiddle.net/72chrqnf/
答案 0 :(得分:0)
在更改指向另一个函数的变量之前,OnClick
将被评估为第一个函数。当此行得到评估时:
document.getElementById("b1").addEventListener("click", OnClick);
它评估OnClick
并得出:
document.getElementById("b1").addEventListener("click", [a reference pointing to the function])
,因此更改OnClick
不会对其产生影响。