您好,匿名用户
随意问技术百科期待您的加入

在javascript里怎样方便的克隆一个object

0 投票

最近在写程序的时候发现,如果在函数参数中传递一个object对象,如果我在函数内部改变了这个对象的字段值,那么这个对象也会随之改变,看来对于对象来说函数参数传递的是一个引用。

那么js里是否有方便的clone对象方法呢?我好像没有找到clone关键字支持,对象内部也没有clone方法,jQuery的$.clone方法也不能用在普通对象上,有这样的方法吗?

用户头像 提问 2013年 11月27日 @ Master Yi 上等兵 (217 威望)
分享到:

1个回答

0 投票
 
最佳答案

深拷贝需要考虑的因素非常多,比如

  • 传入的是普通的{}对象还是由构造函数生成的对象
  • 如果由构造函数生成是否拷贝原型链上的属性
  • 处理循环引用(包括自身引用)

这里写出一个基本的深拷贝方案。只处理基本的{}对象,同时也处理Array,RegExp,Date,并解决循环引用问题。

http://jsfiddle.net/cattail/NYNT5/

用户头像 回复 2013年 11月23日 @ Taurus 上等兵 (303 威望)
选中 2013年 9月7日 @Master Yi
提一个问题:

相关问题

0 投票
1 回复 32 阅读
0 投票
1 回复 46 阅读
用户头像 提问 2013年 9月23日 @ Evelynn 上等兵 (244 威望)
0 投票
1 回复 59 阅读
0 投票
1 回复 31 阅读
用户头像 提问 2013年 11月7日 @ Viktor 上等兵 (290 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...