有沒有辦法克隆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