Objekt JavaScript. ()

Metoda JavaScript Object.assign () zkopíruje všechny vyčíslitelné vlastní vlastnosti daných objektů do jednoho objektu a vrátí jej.

Syntaxe assign()metody je:

 Object.assign(target,… sources)

assign()Metoda je statické metody, je nazýván pomocí Objectnázev třídy.

přiřadit () parametry

assign()Metoda bere v:

  • target - Cílový objekt - na co se mají použít vlastnosti zdrojů, které se po úpravě vrátí.
  • sources - Zdrojové objekty - objekty obsahující vlastnosti, které chcete použít.

Vrátit hodnotu z assign ()

  • Vrátí cílový objekt.

Poznámka: Vlastnosti v cílovém objektu jsou přepsány vlastnostmi ve zdrojích, pokud mají stejný klíč.

Příklad 1: Použití Object.assign () ke klonování a sloučení objektů

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

Výstup

 (jméno: „Alan Turing“, věk: 120) (jméno: „Alan Turing“, věk: 120) (a: 1, b: 12, c: 23)

Zde si všimněte, že pokud je zdrojovou hodnotou odkaz na objekt, kopíruje pouze referenční hodnotu.

Vlastnosti novějších zdrojů také přepíší ty starší.

Příklad 2: Použití 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 )

Výstup

 (c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)

Jak vidíte, vlastnosti řetězového prototypu a nevyčíslitelné vlastnosti nelze kopírovat.

Primitivy budou také zabaleny do objektů, null a undefined budou ignorovány.

Protože pouze řetězce mají vyčíslitelnou vlastnost, zkopírují se do cílového objektu.

Doporučené čtení: Javascript Object defineProperties ()

Zajímavé články...