2014-12-18 43 views
5

說我有一個現有的對象,a和原型b。我想用a的值創建一個新對象c,但b的原型。有沒有更好的方式比下面JavaScript Object.create樣式與現有對象

function Copy(object) { 
    Object.assign(this, object); 
} 
Copy.prototype = Object.create(b); 

var c = new Copy(a); 

編輯:比問題的解決Object.setPrototypeOf好還是壞?

+1

請注意'Object.assign'是ES6的一部分,目前僅在Firefox中受支持。 –

+1

_.assign的作品。 ;) – Jacob

+1

注意你的'c'繼承自'b''繼承的'Copy.prototype'。你可以使用'Copy.prototype = b'而不是'Copy.prototype = Object.create(b);'直接從'b'繼承''''。 – Oriol

回答

3

沒有必要擁有Copy構造函數。只需使用

var c = Object.assign(Object.create(b), a); 
相關問題