Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 克隆JSON未按预期工作_Javascript_Json - Fatal编程技术网

Javascript 克隆JSON未按预期工作

Javascript 克隆JSON未按预期工作,javascript,json,Javascript,Json,我有一个JSON文本,如下所示: var json_1 = { "name": "Tim", "toys": ["ball", "bat", "lego"] }; var json_2 = json_1; 现在我将其克隆如下: var json_1 = { "name": "Tim", "toys": ["ball", "bat", "lego"] }; var json_2 = json_1; 如果我从json_1(使用splice())中移除玩具,那么

我有一个JSON文本,如下所示:

var json_1 = {
    "name": "Tim",
    "toys": ["ball", "bat", "lego"]
};
var json_2 = json_1;
现在我将其克隆如下:

var json_1 = {
    "name": "Tim",
    "toys": ["ball", "bat", "lego"]
};
var json_2 = json_1;
如果我从
json_1
(使用
splice()
)中移除玩具,那么同样的玩具似乎也会从
json_2
中移除。 如何创建副本而不使它们相互依赖?

当您这样做时:

var json_2 = json_1
实际上,你并不是在“克隆”对象,你只是在给它添加别名。因此,json_1上的所有操作都将镜像到json_2上,反之亦然。 要真正克隆您的对象,请查看:

当您这样做时:

var json_2 = json_1
实际上,你并不是在“克隆”对象,你只是在给它添加别名。因此,json_1上的所有操作都将镜像到json_2上,反之亦然。
要真正克隆对象,请查看:

这不是“JSON文字”。这是一个“对象文字”。它与JSON没有任何关系。这不是JSON。这是一个使用对象文字语法的javascript对象,而不是“JSON文字”。这是一个“对象文字”。它与JSON没有任何关系。这不是JSON。这是一个使用对象文字语法的javascript对象。