Załóżmy, że mamy tablicę obiektów.Alternatywa obiektu Object.assign (... array)
Wywołanie Object.assign(...array)
sprawia dział między tymi obiektami, gdzie obiekt z indeksu i
nadpisanie istniejących właściwości w obiekcie z indeksem i-1
na przykład:
var array=[{interf:'IPerson',name:'Someone'},{clss:'Person',name:'Ahmed'},{student:true}];
console.log(
Object.assign(...array) // Object.assign(array[0],array[1],array[2])
)
Teraz, używając Babel z proponowana składnia rozprzestrzeniania obiektu, możemy zrobić statycznie:
{...array[0],...array[1],...array[2]} // spread used for each object not for array
Jak to zrobić dynamicznie?
Istnieje nakładanie się kontekstu "składni rozłożonej". Mam na myśli sposób użycia składni rozprzestrzenianej dla obu:
- Dla tablicy do rozprzestrzeniania elementów.
- dla wyjścia dosłownym obiektu
{}
aby dziedziczenie
?
Próbowałem {...array}
i zwraca {0:<array[0]>,1:<array[1]>,2:<array[2]>}
który jest nie taka sama moc jak Object.assign(...array)
.
ES7 jest wykonywany i zwalniany, rozprzestrzenianie obiektów nie jest jego częścią. Po prostu powiedz "Proponowana składnia rozprzestrzeniania obiektów", nie mów ES7. – loganfsmyth
Przypisanie nie ma nic wspólnego z dziedziczeniem. Użyj terminów "extend" lub "mixin". – Bergi
@loganfsmyth: Czy uważasz, że powinniśmy mieć tag dla każdej z tych propozycji? (stworzone na żądanie) –