gpt4 book ai didi

数组内的 Javascript 对象 - 错误求值

转载 作者:行者123 更新时间:2023-12-01 03:59:51 26 4
gpt4 key购买 nike

为什么下面的代码打印“Tree”,“Tree”,而不是“Bear”,“Tree”?

var file_array = new Array(100);
var fileobject = {name: null , folder: null , url: null , modified: null};

fileobject.name = "Bear";
file_array[0] = fileobject;
fileobject.name = "Tree";
file_array[1] = fileobject;

console.log(file_array[0].name);
console.log(file_array[1].name);

最佳答案

只涉及一个对象。使用 = 分配对象值会为该对象分配引用,而不是副本。

复制对象是可能的,但在一般情况下,它可能会发展成为一个非常困难的问题(由于引用循环之类的原因)。如果您需要大量这些对象,更好的解决方案是编写一个函数,在调用它时返回一个新对象:

function makeFileObject(name) {
return {name: name , folder: null , url: null , modified: null};
}

file_array[0] = makeFileObject("Bear");
file_array[1] = makeFileObject("Tree");

关于数组内的 Javascript 对象 - 错误求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279031/

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