如果函数不在"父"函数中执行或使用eval(),如何将函数作为参数传递?(因为我已经读到这是不安全的.)

我有这个:

addContact(entityId, refreshContactList());

它是有效的,但问题是当函数被调用时,而不是在函数中使用时,refreshContactList会触发.

我可以用eval()来绕过它,但根据我读到的内容,这不是最好的做法.如何在JavaScript中将函数作为参数传递?

推荐答案

您只需要go 掉括号:

addContact(entityId, refreshContactList);

然后,它传递函数,而不先执行它.

下面是一个例子:

function addContact(id, refreshCallback) {
    refreshCallback();
    // You can also pass arguments if you need to
    // refreshCallback(id);
}

function refreshContactList() {
    alert('Hello World');
}

addContact(1, refreshContactList);

Javascript相关问答推荐

我可以后增量超过1(最好是内联)吗?

橡皮擦完全让画布变成白色

Next.js Next/Image图像隐含性有任何类型-如何修复?

通过使用100%间隔时间来代表我们还剩多少时间来倒计时

zoom svg以适应圆

在网页上添加谷歌亵渎词

将现场录音发送到后端

实现JS代码更改CSS元素

虚拟滚动实现使向下滚动可滚动到末尾

ChartJs未呈现

如何在使用rhandsontable生成表时扩展数字输入验证?

覆盖加载器页面避免对页面上的元素进行操作

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

当标题被点击时,如何使内容出现在另一个div上?

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

ngOnChanges仅在第二次调用时才触发

如何在FiRestore中的事务中使用getCountFromServer

与在编剧中具有动态价值的定位器交互

MUI迷你图:如何将$符号添加到MUI迷你图中的工具提示数据

Chart.js Hover线条在鼠标离开时不会消失