JavaScript Object.assign ()

Metoda JavaScript Object.assign () kopira vse naštete lastne lastnosti danih predmetov v en predmet in ga vrne.

Sintaksa assign()metode je:

 Object.assign(target,… sources)

assign()Način, da statično metodo, ki se imenuje z Objectimenom razreda.

assign () Parametri

assign()Metoda je v:

  • target - ciljni objekt - na kaj uporabiti lastnosti virov, ki se vrne po spremembi.
  • viri - izvorni objekti - predmeti, ki vsebujejo lastnosti, ki jih želite uporabiti.

Vrnjena vrednost iz assign ()

  • Vrne ciljni objekt.

Opomba: Lastnosti v ciljnem objektu prepišejo lastnosti v virih, če imajo isti ključ.

Primer 1: Uporaba Object.assign () za kloniranje in spajanje predmetov

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

Izhod

 (ime: 'Alan Turing', starost: 120) (ime: 'Alan Turing', starost: 120) (a: 1, b: 12, c: 23)

Tukaj upoštevajte, da če je izvorna vrednost sklic na objekt, samo kopira referenčno vrednost.

Tudi lastnosti poznejših virov prepišejo prejšnje.

2. primer: Uporaba 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 )

Izhod

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

Kot lahko vidite, lastnosti v verigi prototipov in neštetih lastnosti ni mogoče kopirati.

Prav tako bodo primitivi oviti v predmete, ničli in nedefinirani bodo prezrti.

Ker imajo samo nizi nešteto lastnosti, se kopirajo v ciljni objekt.

Priporočeno branje: Javascript Object defineProperties ()

Zanimive Članki...