options = Object.assign.apply(Object, [{}, {cz:"true"}, {}, {}].concat(sources));
powyżej, chodzi o to że te obiekty puste zostały wchłonięte do obiektu pierwszego(jedynego)?
teraz i się pomieszało bo przecież Object.assign przyjmuje 2 argumenty, cel, i żródło. Jeśli wywołuje metodę apply, to pierwszy jest argumentem Object, this, null, itp.
Natomiast 2 argument to tablica agrumentów przekazywanych do funkcji assign. Hmmm
ale teraz :bez wywołania apply to :
var destination = {};
var options = Object.assign( [destination].concat(sources));
//destination === {}
Dlaczergo inaczej ta funkcja się zachowuje bez wywołania apply
(...) kopiuje wszystkie wyliczalne własne właściwości *z jednego lub więcej* obiektów źródłowych do obiektu docelowego
. W sekcjiskładnia
masz też wprost napisane:...zrodla
.