Sunday, May 19, 2019

Pass a JavaScript function as parameter




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?



Answer



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);

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...