我有一个非常简单的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?。但是令我惊讶的是,没有简单的方法可以简单地复制哈希,或者本质上是仅具有属性而没有方法,原型等的对象。
您可以使用Object.assign
var original_color = {
r: 214,
g: 124,
b: 55
};
var new_color = Object.assign({},original_color)
嗯,这可以解决问题,但这并不优雅,只是您之前引用的答案的精简版。
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;