Closed tiny-kottan closed 8 years ago
https://github.com/Yevs/kottans-homework/tree/master/week03/lec1 я как-то сильно подробил helper'ы, мб объеденить их в один файл?
Также заимплементил deepAssign с перезаписью при совпадению ключа и без. Если с перезаписью всё понятно, то вот без перезаписи есть проблемы:
Что если deepAssign({}, [{a: {b: [1, 2, 3]}}, {a: {b: new Map([[4,5], [5,6]])}}])
. В таком случае я считаю, что у b
первого источника приоритет больший, поэтому тип b
результата будет Array
, а не Map
.
написать deepAssign, который работает ровно так же, как и Object.assign (порядок ключей, проверка на enumerable, проверяет на != null etc), но хэндлит nested объекты правильно проверяет на объект, умеет работать с сабклассами то есть new obj.constructor, а не []/{} бонусные поинты: хэндлить даты/регэкспы/мэпы/сэты https://github.com/shvaikalesh/polyfill-object/blob/master/assign.js реализация Object.assign, ваш тоже должен работать с Object.create(null) должно работать синхронно и в рамках ecmascript. то есть structured clone не юзать! и без
JSON