深度合并和浅合并在JavaScript对象中有什么区别? 据我所知,深度合并会递归地将所有源对象可枚举属性复制到目标对象中。但是浅合并会做什么呢?
深度合并和浅合并在JavaScript对象中有什么区别? 据我所知,深度合并会递归地将所有源对象可枚举属性复制到目标对象中。但是浅合并会做什么呢?
var obj1 = {
foo: {
prop1: 42,
},
};
var obj2 = {
foo: {
prop2: 21,
},
bar: {
prop3: 10,
},
};
肤浅:
var result = {
foo: { // `foo` got overwritten with the value of `obj2`
prop2: 21,
},
bar: {
prop3: 10,
},
};
深度:
var result = {
foo: {
prop1: 42,
prop2: 21, // `obj2.foo` got merged into `obj1.foo`.
},
bar: {
prop3: 10,
},
};
obj1.foo = obj2.foo;
(假设您合并到 obj1
中)。因此称为“浅层”。 - Felix Kling