为什么 console.log() 绕过 addEventListener?

问题描述

我有一个按钮,点击它应该执行 addEventListener 函数。在回调函数部分我直接使用了一个console.log。

<button id="btnTrans">Translate</button>
var buttonTranslate = document.querySelector("#btnTrans");
buttonTranslate.addEventListener("click",console.log("clicked"));

DOM 一加载,"clicked" 就会出现在控制台上。难道不应该等待事件先发生吗?

解决方法

console.log 会立即执行,因为它没有包装在函数中。将它包装在一个函数中:

buttonTranslate.addEventListener("click",() => { console.log("clicked") });