2014-10-02 31 views
0

哈希我有一個非常簡單的JavaScript哈希(對象,它是唯一的屬性):複製在Javascript

var original_color = { 
    r: 214, 
    g: 124, 
    b: 55 
}; 

我想複製整個哈希,然後修改它:

var new_color = original_color; 
new_color.r = 50; 

不JavaScript有任何內置的方式來複制字典?還是有一些其他的JS數據類型,我應該用它來處理哈希/字典?

有關於克隆對象的SO有一個相關的問題:How do I correctly clone a JavaScript object?。但我很驚訝沒有簡單的方法來簡單地複製散列,或本質上是一個只有屬性,沒有方法,原型等的對象。

+0

如果您有對象子對象,請使用extend(),Object.create()或JSON三明治。 – dandavis 2014-10-02 22:26:24

+0

不,在語言中沒有這樣的原始機制。 – Pointy 2014-10-02 22:27:12

+0

答案中的克隆答案就是你要做的。 js中的對象和哈希之間沒有區別。您需要遍歷對象A並將這些對象添加到對象B中。 – scrappedcola 2014-10-02 22:30:06

回答

0

嗯,這將做的伎倆,但它不是優雅的,只是你之前提到的一個答案的簡化版本。

var original_color = { 
r: 214, 
g: 124, 
b: 55 
}; 
var new_color ={};  
for (prop in original_color){ 
    if (original_color.hasOwnProperty(prop)){ 
    new_color[prop] = original_color[prop]; 
} 
} 
new_color.r = 50;