我無法理解爲什麼在以下示例中創建的「重複」事件偵聽器的行爲如此不同。我已經仔細閱讀了幾個有關該主題的討論,但我剛剛開始學習JavaScript,並且我無法弄清楚版本2中發生的事情在版本1中是不會發生的。是否有人願意爲我提供啓發?何時丟棄重複事件偵聽器,以及它們何時不是?
這是JSFiddle demo。 JavaScript看起來像這樣:
// VERSION 1
var clickEvents = 0;
button.addEventListener('click', buttonFunction);
function buttonFunction() {
clickEvents++;
display.innerHTML = clickEvents; // <-- increases incrementally
button.addEventListener('click', buttonFunction);
}
// VERSION 2
var clickEvents = 0;
mainFunction();
function mainFunction() {
button.addEventListener('click', buttonFunction);
function buttonFunction() {
clickEvents++;
display.innerHTML = clickEvents; // <-- increases exponentially
mainFunction();
}
}