相关疑难解决方法(0)

你如何在Javascript中克隆一个对象数组?

...每个对象还引用同一数组中的其他对象?

当我第一次想出这个问题时,我就是这样的

var clonedNodesArray = nodesArray.clone()
Run Code Online (Sandbox Code Playgroud)

将存在并搜索有关如何在javascript中克隆对象的信息.我确实在StackOverflow上找到了一个问题(由同样的@JohnResig回答)他指出用jQuery你可以做的

var clonedNodesArray = jQuery.extend({}, nodesArray);
Run Code Online (Sandbox Code Playgroud)

克隆一个对象.我试过这个,但这只复制了数组中对象的引用.所以,如果我

nodesArray[0].value = "red"
clonedNodesArray[0].value = "green"
Run Code Online (Sandbox Code Playgroud)

nodesArray [0]和clonedNodesArray [0]的值都将变为"绿色".然后我试了一下

var clonedNodesArray = jQuery.extend(true, {}, nodesArray);
Run Code Online (Sandbox Code Playgroud)

哪个深层复制了一个Object,但我分别从Firebug和Opera Dragonfly 那里得到了" 过多的递归 "和" 控制堆栈溢出 "的消息.

你会怎么做?这是不应该做的事吗?在Javascript中是否有可重用的方法?

javascript

392
推荐指数
16
解决办法
32万
查看次数

标签 统计

javascript ×1