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

Javascript 为什么console.log()会绕过addEventListener?,javascript,dom-events,addeventlistener,console.log,Javascript,Dom Events,Addeventlistener,Console.log,我有一个按钮,点击它应该执行addEventListener函数。在回调函数部分,我直接使用console.log <button id="btnTrans">Translate</button> var buttonTranslate = document.querySelector("#btnTrans"); buttonTranslate.addEventListener("click", console.

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

<button id="btnTrans">Translate</button>
var buttonTranslate = document.querySelector("#btnTrans");
buttonTranslate.addEventListener("click", console.log("clicked"));
翻译
var buttonTranslate=document.querySelector(“#btnTrans”);
ButtontTranslate.addEventListener(“单击”),console.log(“单击”);

加载DOM后,
“单击”
就会显示在控制台上。它不应该先等待事件发生吗?

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

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

它应该是
buttonTranslate.addEventListener(“单击”,e=>console.log(“单击”)
您没有附加处理程序,实际上您调用了console.log()。您正在调用
console.log(…)
,然后尝试将该调用的结果附加为事件处理程序。