В чем разница между Webpack-merge и Object.assign ()? - PullRequest
0 голосов
/ 06 июля 2018

Я работаю с веб-пакетом, и, наконец, я не вижу возможности этого пакета, поскольку кажется, что Object.assign выполняет свою работу, но, возможно, что-то находится между строк в этом пакете?

Спасибо

1 Ответ

0 голосов
/ 10 июля 2018

Разница между пакетом npm "webpack-merge" и 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 () (или распространение объекта) перезаписывает значение предыдущих свойств последним, в то время как webpack-merge объединяет элемент массива.

см. Код выше в Runkit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...