有没有办法克隆javascript对象?不是DOM元素,而是具有特定构造函数的对象。比如可以说我有一个电话号码对象:复制/克隆Javascript对象
function PhoneNumber(number, type) {
this.number = number;
this.type = type;
}
var phoneObj1 = new PhoneNumber('1111111111', 'Home');
var phoneObj2 = //Copy of phoneObj1, but unique so I can set other parameters if necessary.
jQuery的解决了这个问题,我带扩展。
但它返回一个通用对象:
Object{number:'1111111111' type:'Home'}
而不是与电话号码的构造函数的名称。我需要一种方法来传递原始phoneObj1的构造函数,而不必在扩展中写入新的PhoneNumber(),因为这些代码被许多不同类型的对象使用,因此在任何给定的时间我都不知道确切的应该使用的构造函数,除了我有一个可以引用的对象的事实。
var phoneObj2 = $.extend(new PhoneNumber(), phoneObj1); //I CANNOT do this!
//Maybe something like this?
var phoneObj2 = $.extend(new phoneObj1.constructor.name, phoneObj1); //This throws an error.
可能重复(HTTP://计算器。问题/ 122102 /什么是最有效的方法克隆一个JavaScript对象) – fyr 2012-01-11 07:38:55
一些很好的答案在这里http://stackoverflow.com/questions/332422/how-do-i这个名称的对象类型在JavaScript的 – georg 2012-01-11 07:39:40
赞同'fyr'。我将这个镜头作为最直接的方式:Object.create(obj); – dbrin 2012-01-11 07:46:43