2 liqiangzh126 liqiangzh126 于 2016.03.30 10:03 提问

js 如何获取引用传递的值

复杂类型如Object的传递是引用传递,如何获得相同值的独立的一份拷贝呢?

5个回答

showbo
showbo   Ds   Rxr 2016.03.30 10:18
已采纳

如果不包含函数,可以JSON.stringify转为字符串,在JSON.parse刚才生成的字符串得到,否则就要for深度拷贝http://snandy.iteye.com/blog/842097

showbo
showbo $('#xxxxx').clone(true).appendTo(document.body)
一年多之前 回复
showbo
showbo 回复Ultimate_Redx: html对象直接clone就行了。JSON对象数据那种可以JSON.stringify
一年多之前 回复
liqiangzh126
liqiangzh126 JSON转换好像会出问题,我尝试的是Jquery获取的html对象,这样转换之后完全不对了。
一年多之前 回复
w172087242
w172087242   Ds   Rxr 2016.03.30 10:18

遍历原型链prototype,如果对象里面还有对象,就需要深层复制。
然后将prototype的属性和值分别赋给新对象,这样操作才不会改变原有对象属性的值,而且也保留了源对象的信息,
对象内部没有在原型链上的方法或者变量,则原型链复制就是不可见的,这样的可以用源对象的构造器构造新对象,保持私有属性的可用。

希望可以帮到你。

liqiangzh126
liqiangzh126   2016.03.30 10:46

刚刚找到一个简单的方法,Jquery的 clone()
不知道是否对所有对象都有效

CSDNXIAOD
CSDNXIAOD   2016.03.30 11:32

js 原始值和引用传递
js数组引用传递
JS获取页面传递(REQUEST)值
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

somnus3421
somnus3421   2016.03.31 03:18
 JSON.stringify(objcet)

然后在再转回对象,对性能影响其实蛮大的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!