Spaces:
Sleeping
Sleeping
| function override(source1, source2) { | |
| var target = {}; | |
| var key1; | |
| var key2; | |
| var item; | |
| for (key1 in source1) { | |
| item = source1[key1]; | |
| if (Array.isArray(item)) { | |
| target[key1] = item.slice(0); | |
| } else if (typeof item == 'object' && item !== null) { | |
| target[key1] = override(item, {}); | |
| } else { | |
| target[key1] = item; | |
| } | |
| } | |
| for (key2 in source2) { | |
| item = source2[key2]; | |
| if (key2 in target && Array.isArray(item)) { | |
| target[key2] = item.slice(0); | |
| } else if (key2 in target && typeof item == 'object' && item !== null) { | |
| target[key2] = override(target[key2], item); | |
| } else { | |
| target[key2] = item; | |
| } | |
| } | |
| return target; | |
| } | |
| module.exports = override; | |