gpt4 book ai didi

Javascript deepCopyObject 失败

转载 作者:行者123 更新时间:2023-12-02 17:51:22 25 4
gpt4 key购买 nike

我编写了自己的 deepCopy-Function,它能够复制和对象:

function deepCopyObj(object){
if(object == null || typeof(object) != 'object'){
return object;
}

var copy = object.constructor(); //This line makes some troubles
for (var attr in object) {
if(object.hasOwnProperty(attr) && typeof(object[attr]) !== "undefined") {
copy[attr] = deepCopyObj(object[attr]);
}
}
return copy;
}

这段代码一直工作得很好 - 直到现在:有时,当我想复制一个对象时,命令 var copy = object.constructor(); 返回 undefined

这是什么原因呢?当我将 object 打印到控制台时,它会给出正确的输出。

请注意,我的代码有时使用 delete object.anAttribute; 来删除函数 - 但我不知道这是否是原因。

最佳答案

另请注意,您的 deepCopyObj() 将仅复制源对象的可枚举属性。

var obj = {name: "Andrew", lastname:"Smith"};
Object.defineProperty(obj,"id",{
enumerable:false,
configurable:true,
writeable:true,
value:"1"
});
var newObj = deepCopyObj(obj);

newObj.id 返回未定义

参见How do I correctly clone a JavaScript object?进一步解释

关于Javascript deepCopyObject 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21336843/

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