javascript - addEventListener中不带括号的函数如何使用?

标签 javascript html function

我无法理解这是怎么回事 addItem()removeItem()addEventListener('click', addItem) 中调用时不带括号.

var addButton = document.getElementById('add');
addButton.addEventListener('click', addItem);

var removeButton = document.getElementById('remove');
removeButton.addEventListener('click', removeItem);

function addItem(){
    console.log('Add Button clicked');
}

function removeItem(){
    console.log('Remove Button clicked');
}

最佳答案

因为在这种情况下,addItem用作函数引用而不是函数的返回值。

如果你这样做:

addButton.addEventListener('click', addItem());

然后addItem将立即执行,并且只要 addButton被点击,返回值为addItem (即 undefined )将被调用。这将导致错误,因为 undefined不是函数。

在这里,当我单击 addButton 时,你说的是,查找我传递的函数引用,并执行它。

你也可以用两种不同的方式来写:
addButton.addEventListener('click', "addItem()");
addButton.addEventListener('click', function() {
    addItem();
});

以上两者仍将产生与原始代码相同的输出。

关于javascript - addEventListener中不带括号的函数如何使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56423797/

相关文章:

javascript - 两个不同的链接显示/隐藏具有两个 ID 的 div。如何?

php - 我无法插入文本区域值

html - 降低 z-index 后链接不可点击

c++ - 在 C++ 中调用指向成员函数的指针时出错

javascript - 检查链接函数中隔离范围变量的值 - Angular Directive(指令)

javascript - 字符串日期转unix时间戳

javascript - 禁用按钮 30 秒

php - 显示来自 WordPress 帖子的所有图像

Python-根据函数参数构造变量名

javascript - 如何获取最后一个元素的id?