CNode

问一个js操作Object问题

问答
Iim-here发布于10 年前最后回复10 年前11 回复5189 浏览0 收藏

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

查看回复

回复 (11)

J
jimliang#1·10 年前

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

I
im-here#2·10 年前
引用 jimliang请复习,深复制和浅复制 From Noder

@jimliang 搞定了,多谢!

K
klesh#3·10 年前

lodash 你值得拥有

来自酷炫的 CNodeMD

I
im-here#4·10 年前
引用 kleshlodash 你值得拥有 来自酷炫的 CNodeMD

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

K
klesh#5·10 年前

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

B
baka397#9·10 年前
引用 im-here@baka397 链接404

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

O
oyosc#10·10 年前

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

参与回复
登录后即可参与回复。登录