我对Javascript中的闭包感到困惑。
var updateDom = function(param1, param2, param3) {
return function(event) {
// Do something.
};
};
var updateDomForMyBtn = updateDom(param1, param2, param3);
$btnX.on('click', updateDomForMyBtn);
但为什么我不能将它包装在一个匿名函数中,如果我需要做更多的事情,这可能会有用:
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
});
这样做的正确方法是什么?
答案 0 :(得分:1)
您实际上可以 将其包装在匿名函数中。您只需在该anon函数的末尾调用updateDomForMyBtn
而不是返回它:
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();
});