const objOne = {
name : "mike",
langugae: {
first: "chinese",
second: "english"
},
data: [1, 2, 3, 5]
}
objOne.objOne = objOne;
let objThree = deepCopySecond(objOne);
console.log(objThree);
// 下面这行代码为什么会报错
objThree.language.first = "japanese";
deepCopySecond是可以实现对具有循环引用的对象的深拷贝函数
打印objThree的时候可以打印出来,说明拷贝成功。
然后我便想通过改变objThree的值来和objOne对比来判断是否深拷贝成功。
但是最后一行代码直接报
Cannot set property 'first' of undefined
错误,这是为什么?
因为单词拼写错误呗,你看你前面定义的叫
langugae
,后面用的时候却写成language
.难受不难受?