import assignValue from './assignValue.js' import baseAssignValue from './baseAssignValue.js' /** * Copies properties of `source` to `object`. * 将“源”的属性复制到“对象”。 * @private * @param {Object} source 要从中复制属性的对象。 * @param {Array} props 要复制的属性标识符。 * @param {Object} [object={}] 要将属性复制到的对象。 * @param {Function} [customizer] 自定义复制值的函数。 * @returns {Object} 返回的对象。 */ function copyObject(source, props, object, customizer) { const isNew = !object object || (object = {}) for (const key of props) { let newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined if (newValue === undefined) { newValue = source[key] } if (isNew) { baseAssignValue(object, key, newValue) } else { assignValue(object, key, newValue) } } return object } export default copyObject