// 1:1克隆 (只考虑 f,s 为同一类型) function deepCopy(s) { if (!Object.keys(s).length || s === null) return; var copy = function (f, s) { for (var i in s) { if (typeof s[i] === 'object' && !!s[i]) { f[i] = s[i].constructor === Array ? [] : {}; copy(f[i], s[i]); } else { f[i] = s[i]; } } return f; }; return s.constructor === Array ? copy([], s) : copy({}, s); }
// 在A的基础上,累加克隆B (只考虑 f,s 为同一类型) function deepCopy(f, s) { if (!Object.keys(s).length || f === null) return; for (var i in s) { if (typeof s[i] === 'object' && !!s[i]) { f[i] = s[i].constructor === Array ? [] : {}; deepCopy(f[i], s[i]); } else { f[i] = s[i]; } } return f; }