gpt4 book ai didi

javascript - 最后一个对象总是在更新?

转载 作者:行者123 更新时间:2023-11-30 18:40:08 27 4
gpt4 key购买 nike

function createTextFields(obj) {    
for (var i = 0; i < obj.length; i++) {
dataDump = {};
for (var key in obj[i]) {
dataDump[key] = textField.value;
var callback = function (vbKey) {
return function (e) {
dataDump[vbKey] = e.source.value;
};
}(key);
}
}
globalData.push(dataDump);
}

我在单击按钮时创建文本字段,每次都会从对象创建一个新文本字段。当我更改第一个或第二个或第三个 TextFields 并单击更新时...值在第四个或最后一个 TextFields TextField 的对象上更新...

回调在 TextFields 发生变化时调用

最佳答案

如果没有上下文很难判断,但假设在设置文本字段更改时调用了不同的回调实例,那么问题就是回调的闭包上下文。

回调函数持有全局 dataDump 对象的引用,该对象在迭代的每个周期都被重新分配。因此,在 for 循环结束时,所有回调将仅引用一个(最新的)dataDump 对象。

尝试将“var”添加到赋值行。

    var dataDump = {};    

关于javascript - 最后一个对象总是在更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7095288/

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