Yevs / kottans-homework

1 stars 0 forks source link

Домашка №4 #6

Closed tiny-kottan closed 8 years ago

tiny-kottan commented 8 years ago

написать 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

Yevs commented 8 years ago

https://github.com/Yevs/kottans-homework/tree/master/week03/lec1 я как-то сильно подробил helper'ы, мб объеденить их в один файл?

Yevs commented 8 years ago

Также заимплементил deepAssign с перезаписью при совпадению ключа и без. Если с перезаписью всё понятно, то вот без перезаписи есть проблемы: Что если deepAssign({}, [{a: {b: [1, 2, 3]}}, {a: {b: new Map([[4,5], [5,6]])}}]). В таком случае я считаю, что у b первого источника приоритет больший, поэтому тип b результата будет Array, а не Map.