如果函数不在"父"函数中执行或使用eval()
,如何将函数作为参数传递?(因为我已经读到这是不安全的.)
我有这个:
addContact(entityId, refreshContactList());
它是有效的,但问题是当函数被调用时,而不是在函数中使用时,refreshContactList
会触发.
我可以用eval()
来绕过它,但根据我读到的内容,这不是最好的做法.如何在JavaScript中将函数作为参数传递?
如果函数不在"父"函数中执行或使用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);