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; | |