Вопрос на собеседовании

Как мы знаем, Polyfill - это самый часто задаваемый вопрос в интервью, и Object.assign () - один из них.

Во-первых, нам нужно понять, что делает Object.assign () и где мы можем его использовать?

Object.assign () копирует значения (всех перечисляемых собственных свойств) из одного или нескольких исходных объектов в целевой объект.

Пример: Object.assign (цель,… источники)

const obj = { a: 1 };
const copy = Object.assign({}, obj);
console.log(copy); // { a: 1 }

и теперь посмотрим, где мы обычно используем

  • где бы мы ни хотели неглубоко скопировать объект, чтобы это не повлияло на родительский объект.
  • один из основных принципов Redux - никогда не изменять состояние, вы часто будете использовать Object. assign () для создания копий объектов с новыми или обновленными значениями.

Теперь реализуем полифил Object.assign (),

  • target - это место, где все source1, source 2 будут объединены или замещены свойством.
  • nextSource - это источник1, источник2…. мы указываем второй параметр Object.assign
  • нам нужно использовать for loop для перебора всех источников (source1, source2,…)
  • Для выполнения цикла мы будем использовать аргументы, начальный индекс которых равен 1.
  • новый цикл for, чтобы скопировать свойство всех источников в объект newTo
  • и, наконец, мы вернем объект newTo, где у нас будут все свойства source1, source2 и т. д.

Резюме

Не забудьте подписаться на публикацию The Lean Programmer Publication, чтобы увидеть больше таких статей, и подпишитесь на нашу новостную рассылку tinyletter.com/TheLeanProgrammer