【发布时间】:2014-08-09 06:05:23
【问题描述】:
我已经尝试了很多在这里找到的解决方案,但直到现在它们中的任何一个都真正解决了我的问题。
假设我有这样的功能:
var SquareObject = function(id, x, y, text, rectClass, textClass){
var arrayObj = {
"id": null,
"shape": "rect",
"label": null,
"rect": {
"class": null,
"x": null,
"y": null,
...
},
"text": {
"class": null,
"x": null,
"y": null,
...
}
function initArrayObj(){
...
}
function anotherFunction(){
...
}
}
如何复制所有内容,包括方法?因为在复制此 SquareObject 后,我必须更改位于 arrayObj 的属性,同时仍保留其原始状态的副本。
我找到了仅克隆 arrayObj 内容的方法,但现在这并不能完全解决我的问题。
谢谢!
【问题讨论】:
-
你到底想“克隆”什么?
SquareObject是一个带有多个局部变量的函数——你不能一次克隆它们。您要克隆到哪里? -
我之前已经尝试过该主题的所有解决方案。问题是我的函数不会返回任何东西,它就像 OOP 语言中的对象。
-
@Ian ,假设我有类似“var square1 = SquareObject”的东西,而不是我需要“var square2 = clone(SquareObject)”,在某种程度上我可以从 square2 中更改变量,而不在 square1 中更改它们。但如果你说我不能一次克隆所有东西,我认为我必须改变我的方法。
标签: javascript object copy clone