JavaScript Object.assign ()

A JavaScript Object.assign () metódus az adott objektumok összes megszámlálható saját tulajdonságát egyetlen objektummá másolja és visszaadja.

A assign()módszer szintaxisa :

 Object.assign(target,… sources)

A assign()módszer statikus módszerként az Objectosztály nevét használja.

hozzárendel () Paraméterek

A assign()módszer:

  • target - A célobjektum - mire kell alkalmazni a források tulajdonságait, amely a módosítást követően kerül visszaadásra.
  • Források - A forrásobjektum (ok) - objektumok, amelyek tartalmazzák az alkalmazni kívánt tulajdonságokat.

Visszatérési érték a hozzárendelésből ()

  • Visszaadja a célobjektumot.

Megjegyzés: A célobjektum tulajdonságait felülírják a források tulajdonságai, ha ugyanazzal a kulccsal rendelkeznek.

1. példa: Objektumok klónozásához és egyesítéséhez használja az Object.assign () elemet

 // 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 )

Kimenet

 (név: „Alan Turing”, életkor: 120) (név: „Alan Turing”, életkor: 120) (a: 1, b: 12, c: 23)

Itt jegyezzük meg, hogy ha a forrásérték egy objektumra való hivatkozás, akkor csak a referenciaértéket másolja.

A későbbi források tulajdonságai felülírják a korábbi tulajdonságokat.

2. példa: Az Object.assign () használata

 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 )

Kimenet

 (c: 3) („0”: „a”, „1”: „b”, „2”: „c”, c: 3)

Mint látható, a prototípus lánc tulajdonságai és a nem megszámlálhatatlan tulajdonságok nem másolhatók.

Ezenkívül a primitíveket objektumokra fogják csomagolni, a null és undefined értékeket figyelmen kívül hagyják.

Mivel csak a karakterláncoknak van megszámlálhatatlan tulajdonságuk, a célobjektumra másoljuk őket.

Ajánlott olvasmány: Javascript Object defineProperties ()

érdekes cikkek...