JavaScripti Object.assign ()

Meetod JavaScript Object.assign () kopeerib antud objektide kõik loendamatud omadused ühele objektile ja tagastab selle.

Meetodi süntaks assign()on:

 Object.assign(target,… sources)

assign()Meetod, olles staatiline meetod, nimetatakse kasutades Objectklassi nimi.

määrata () parameetrid

assign()Meetod võtab:

  • target - Sihtobjekt - millele rakendada allikate omadusi, mis tagastatakse pärast selle muutmist.
  • allikad - Lähteobjekt (id) - objektid, mis sisaldavad rakendatavaid atribuute.

Tagastusväärtus omistamisest ()

  • Tagastab sihtobjekti.

Märkus. Sihtobjekti atribuudid kirjutatakse üle allikate omadustega, kui neil on sama võti.

Näide 1: Objektide kloonimiseks ja ühendamiseks objekti Object.assign () kasutamine

 // 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äljund

 (nimi: 'Alan Turing', vanus: 120) (nimi: 'Alan Turing', vanus: 120) (a: 1, b: 12, c: 23)

Pange siin tähele, et kui lähteväärtus on viide objektile, kopeerib see ainult võrdlusväärtuse.

Samuti kirjutavad hilisemate allikate omadused varasemad üle.

Näide 2: Object.assign () kasutamine

 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äljund

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

Nagu näete, ei saa prototüübi ahelas olevaid omadusi ega loendamatuid omadusi kopeerida.

Samuti mähitakse ürgsed objektide külge, eiratakse tühiseid ja määratlematuid.

Kuna ainult stringidel on loendamatu omadus, kopeeritakse need sihtobjekti.

Soovitatav lugemine: Javascripti objekti defineProperties ()

Huvitavad Artiklid...