Metoda JavaScript Object.assign () kopira sva nabrojana vlastita svojstva danih objekata u jedan objekt i vraća ga.
Sintaksa assign()
metode je:
Object.assign(target,… sources)
assign()
Metoda, kao statičke metode, zove se pomoću Object
ime klase.
assign () Parametri
assign()
Postupak uzima u:
- target - ciljni objekt - na što primijeniti svojstva izvora, koji se vraća nakon što je modificiran.
- izvori - Izvorni objekt (i) - objekti koji sadrže svojstva koja želite primijeniti.
Vrati vrijednost iz assign ()
- Vraća ciljni objekt.
Napomena: Svojstva u ciljnom objektu prepisuju se svojstvima u izvorima ako imaju isti ključ.
Primjer 1: Korištenje Object.assign () za kloniranje i spajanje objekata
// cloning objects const obj = ( name: "Alan Turing", age: 120, ); let newObject = (); const copy = Object.assign(newObject, obj); // modifies the target object console.log(newObject); // returns the modified object console.log(copy); // merging objects const o1 = ( a: 1, b: 2, c: 3 ); const o2 = ( b: 12, c: 13 ); const o3 = ( c: 23 ); // Earlier source keys are overwritten by later sources const o4 = Object.assign((), o1, o2, o3); console.log(o4); // ( a: 1, b: 12, c: 23 )
Izlaz
(ime: 'Alan Turing', dob: 120) (ime: 'Alan Turing', dob: 120) (a: 1, b: 12, c: 23)
Ovdje imajte na umu da ako je izvorna vrijednost referenca na objekt, ona samo kopira referentnu vrijednost.
Također, svojstva kasnijih izvora prepisuju ranija.
Primjer 2: Korištenje Object.assign ()
const obj = Object.create( ( a: 1 ), ( // a is on obj's prototype chain. b: ( value: 2, // b is a non-enumerable property. ), c: ( value: 3, enumerable: true, // c is an own enumerable property. ), ) ); let copy = Object.assign((), obj); console.log(copy); // ( c: 3 ) copy = Object.assign(copy, "abc", 100, null); console.log(copy); // ( '0': 'a', '1': 'b', '2': 'c', c: 3 )
Izlaz
(c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)
Kao što vidite, svojstva na lancu prototipa i nebrojiva svojstva ne mogu se kopirati.
Također, primitivi će biti umotani u objekte, nula i nedefinirani će se zanemariti.
Budući da samo nizovi imaju nabrojiva svojstva, kopiraju se u ciljni objekt.
Preporučena literatura: Javascript objekt definiProperties ()