gpt4 book ai didi

javascript - 重新声明的变量中的持久数据

转载 作者:行者123 更新时间:2023-11-30 12:22:39 25 4
gpt4 key购买 nike

即使重新声明变量,第一个 foo 的数据如何保持?

详细来说,第一个 bar 属性仍然增加,尽管对象被重新声明。每个按钮都有自己独立的计数器:

var foo = {
bar: 1,
bindClick: function(){
var that = this;
$('#first').on('click', function(){
console.log(that.bar++);
});
}
};

foo.bindClick();

var foo = {
bar: 1,
bindClick: function(){
var that = this;
$('#second').on('click', function(){
console.log(that.bar++);
});
}
};

foo.bindClick();

http://jsfiddle.net/kdzjx2d3/

最佳答案

var that = this;

此行维护对原始对象的引用;你实例化的第一个。即使那个变量名被重用于其他东西,因为那个事件监听器和那个闭包仍然存在,它仍然在某个地方被引用。

(不会提供更改建议,因为您似乎只是对推理感到好奇。如果您有特定的期望行为,请随时在您的问题中添加更多内容)

关于javascript - 重新声明的变量中的持久数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com