JavaScript中的闭包
我有一个这样的代码,我试图在某个按钮上添加一个事件处理程序。我想使用全局变量&将其当前值存储在回调闭包和&不是它的参考。
var globalNum="dummy";
function A()
{
$("#button").click(function()
{
$("#button").append(globalNum);
});
}
globalNum="dummyAgain";
现在,如果点击事件被触发,那么会添加什么 - “dummy”或“dummyAgain”?
我相信它将是“dummyAgain”因为存储闭包全局变量的引用。我想要绑定价值。
我知道我可以在A中创建一个局部变量,我可以使用全局变量&绑定那个但是还有其他更冷静的方式吗?
谢谢
没有找到相关结果
已邀请:
2 个回复
土投
处理此问题并发送一些事件数据:
请注意,我立即执行函数
,因此在
的值发生变化之前,单击处理程序会被附加。正如@Andrew在评论中指出的那样,这与不使用“包装”功能
的效果相同。 没有
的相同解决方案:
这里匿名函数用于捕获局部变量中的当前值
。 更新: 为了完整起见(我希望,@安德鲁,你不介意我把它放在这里)。 “最酷”的方法可能是使用函数的参数并使用此参数立即执行函数:
“技巧”是参数的名称和全局变量的名称是相同的。 这也经常用于引用具有较短标识符的一些对象而不污染全局命名空间,例如,用jQuery:
篮肥炼皖