javascript - Webpack-merge 和 Object.assign() 有什么区别?
问题描述
我正在使用 webpack,最后我看不到这个包的机会,因为它似乎 Object.assign 完成了这项工作,但也许关于这个包的字里行间有什么东西?
谢谢
解决方案
“webpack-merge” npm 包和 Object.assign()(或对象扩展)之间的区别在于它们如何处理具有相同名称的属性:
const webpackMerge = require("webpack-merge");
const object1 = {
'x': [{'a': 'a' }, { 'b': 'b' }]
}
const object2 = {
'x': [{'c': 'c' }, { 'd': 'd' }]
}
console.log('result webpackMerge: ',
webpackMerge(object1, object2)
)
console.log('result Object.assign: ',
Object.assign({}, object1, object2)
)
console.log('result Object.spread: ',
{...object1, ...object2}
)
以上将为您提供:
result webpackMerge: { x: [ { a: 'a' }, { b: 'b' }, { c: 'c' }, { d: 'd' } ] }
result Object.assign: { x: [ { c: 'c' }, { d: 'd' } ] }
result Object spread: { x: [ { c: 'c' }, { d: 'd' } ] }
正如您在上面看到的 Object.assign() (或 Object spread)用后一个属性覆盖先前属性的值,而 webpack-merge 连接数组的元素。
推荐阅读
- html - 如何在 thead 中为多行(th 和 tr)应用粘性标题?
- sql - 如何在 Oracle 中使用带有 CASE 语句的更新命令?
- java - 向 SQS 发布消息时出错:AmazonSQS;状态码:403;错误代码:RequestThrottled
- python - 在不丢失坐标的情况下分割图像(平铺)
- php - 发送推送通知时排除非活动用户,并在他们活动后发送
- angular - 如何做管道到 src 属性角度
- google-cloud-platform - 如何在 Python3 和 CURL 中使用 HTTP 桥发布到 GCP 发布/订阅主题?
- json - 将键 = 值对转换为 JSON
- javascript - 如何在每个项目(相对于项目时间戳)过去 5 分钟后发出事件?
- java - 如何在自动化中实现自我修复机制