理解闭包
Understanding closure
本文关键字:闭包 更新时间:2023-09-26
我对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
});
做这件事的正确方法是什么?
您实际上可以将其封装在匿名函数中。你只需要在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();
});
相关文章:
- 在underscorejs模板中使用闭包
- setTimeout可以与闭包内的函数一起使用吗
- 附加到原型属性的Do函数没有闭包
- 使用闭包共享构造函数参数
- 使用Google闭包编译器包含一个Ecmascript 6类
- 从js引擎的角度来看闭包和构造函数是如何工作的
- for循环中的JavaScript闭包
- Javascript闭包-如何防止内存泄漏
- 子类访问父类's闭包变量
- 闭包如何具体化数据封装
- Javascript.闭包和dynamic'这'实际上具有约束力
- 构造函数函数闭包变量
- 闭包js框架-将ArrayBuffer转换为字符串
- 如何在Angularjs中重构闭包中的重复代码
- 如何告诉闭包javascript编译器不要混淆webkitAudioContext的方法名称
- Google闭包和生成的getters/ssetter
- 如何冻结函数's在闭包中的变量
- 如何使用外部Javascript库(如jQuery)重命名Google闭包样式表
- 使变量可用于不带闭包的异步调用
- 就良好实践而言,带闭包的javascript原型是一件好事吗