Reputation: 2089
I'm bit confused with closure in Javascript.
var updateDom = function(param1, param2, param3) {
return function(event) {
// Do something.
};
};
var updateDomForMyBtn = updateDom(param1, param2, param3);
$btnX.on('click', updateDomForMyBtn);
But why can't I wrap it in an anonymous function, it could be useful if I need to do something more :
var updateDom = function(param1, param2, param3) {
return function(event) {
// Do something.
};
};
var updateDomForMyBtn = updateDom(param1, param2, param3);
$btnX.on('click', function() {
// Do something more...
return updateDomForMyBtn
});
What would be the proper way to do it ?
Upvotes: 0
Views: 49
Reputation: 26861
You actually can wrap it in an anonymous function. You just have to call updateDomForMyBtn
at the end of that anon function instead of returning it:
var updateDom = function(param1, param2, param3) {
return function(event) {
// Do something.
};
};
var updateDomForMyBtn = updateDom(param1, param2, param3);
$btnX.on('click', function() {
// Do something more...
updateDomForMyBtn();
});
Upvotes: 1