问一个js操作Object问题
发布于 8 年前 作者 im-here 4149 次浏览 来自 问答

我在一个js文件里定义了一个Object(假如为o),用o来存一些数据,当然这些数据一直在内存中存在。然后我在别的地方会调用这个js然后来对o做一些操作,可能是改变o里某些属性的值,或者是新增属性,或者是删除属性。 问题是:我如何保证我在删除或修改的时候不改变原来o里所有的数据。 我发现我复制一个o出来,改变这个复制对象的时候o也改变了。

11 回复

请复习,深复制和浅复制 From Noder

@jimliang 搞定了,多谢!

lodash 你值得拥有

来自酷炫的 CNodeMD

@klesh 我也有用lodash,但不知道它有复制Object的api么?

直接有个 clone 啊,像 defaults assign merge 等都可以达到相同的目的,看你的需要选择使用。

@klesh 多谢!

@imhered 复制有点问题,我改了下

这个是引用内存地址的,所以你改了这个,前面那个也跟着改了

回到顶部