Pass a JavaScript function as parameter
function, javascript, parameters
Solution
You just need to remove the parenthesis:
addContact(entityId, refreshContactList);
This then passes the function without executing it first.
Here is an example:
function addContact(id, refreshCallback) {
refreshCallback();
// You can also pass arguments if you need to
// refreshCallback(id);
}
function refreshContactList() {
alert('Hello World');
}
addContact(1, refreshContactList);
Problem
How do I pass a function as a parameter without the function executing in the "parent" function or using `eval()`? (Since I've read that it's insecure.) I have this: ``` addContact(entityId, refreshContactList()); ``` It works, but the problem is that `refreshContactList` fires when the function is called, rather than when it's used in the function. I could get around it using `eval()`, but it's not the best practice, according to what I've read. How can I pass a function as a parameter in JavaScript?