【发布时间】:2017-11-29 05:04:50
【问题描述】:
什么是对象中的引用以及如何在 javascript 中查看分配给对象的引用。我在对象中使用了 lodash _.clone(),并在下面做了一个示例
var Obj = {id : 0, box: 0, ei : 0};
var model = {id : 0,ob : [{c: 1, a: 0}],com: _.clone(Obj)};
var old=_.clone(model)
old.id=1;
console.log(old.id===model.id); //false correct
old.com.id=1;
console.log(old.com.id===model.com.id);//true
更新 old.id 为 1 时,model id 没有更新,但是现在更新 old.com.id 为 1 时,model.com.id 也更新了,为什么?
【问题讨论】:
-
什么是对象中的引用,对象是使用引用分配的。因此,当您执行
var a = {}时,a 将保存内存位置而不是{}。 如何查看分配给对象的引用 据我所知,你不能。 model.com.id 为什么也更新了? 因为,_.clone 不做深拷贝。它只复制第一级 -
你可以参考这里的深拷贝选项:stackoverflow.com/questions/122102/…
标签: javascript json object web lodash