let key function isArray(arr) { return Array.isArray(arr) || arr instanceof Array } function isObject(obj) { return ({}).toString.call(obj) === '[object Object]' } let _extends = function (target, sources, deep) { for (key in sources) if (deep && isObject(sources[key]) || isArray(sources[key])) { if (isObject(sources[key]) && !isObject(target[key])) target[key] = {} if (isArray(sources[key]) && !isArray(target[key])) target[key] = [] _extends(target[key], sources[key], deep) } else if (sources[key] != null) target[key] = sources[key] } // 第一个参数为boolean表示是否深复制 // 没有时,默认为浅复制 // 深复制:(true, target, sources1, sources2, ...) // 浅复制:(target, sources1, sources2, ...) export const extend = function (target) { let deep, args = Array.from(arguments).slice(1) if (typeof target == 'boolean') { deep = target target = args.shift() } args.forEach(ele => _extends(target, ele, deep)) return target }
点赞 评论

相关推荐

牛客网
牛客企业服务