JavaScript Object.assign () -menetelmä kopioi kaikki annettujen objektien kaikki lukemattomat omat ominaisuudet yhteen objektiin ja palauttaa sen.
Menetelmän syntaksi assign()
on:
Object.assign(target,… sources)
assign()
Menetelmä, joka on staattinen menetelmä, kutsutaan käyttää Object
luokan nimi.
määritä () Parametrit
assign()
Menetelmä vie:
- target - Kohdeobjekti - mihin lähteiden ominaisuuksia käytetään, joka palautetaan sen muokkaamisen jälkeen.
- lähteet - Lähdeobjekti (t) - objektit, jotka sisältävät sovellettavat ominaisuudet.
Palautusarvo tehtävästä ()
- Palauttaa kohdeobjektin.
Huomautus: Kohdeobjektin ominaisuudet korvataan lähteiden ominaisuuksilla, jos niillä on sama avain.
Esimerkki 1: Objektien kohdentaminen ja yhdistäminen Object.assign (): n avulla
// 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 )
Tuotos
(nimi: 'Alan Turing', ikä: 120) (nimi: 'Alan Turing', ikä: 120) (a: 1, b: 12, c: 23)
Huomaa tässä, että jos lähdearvo on viittaus objektiin, se kopioi vain viitearvon.
Myös myöhempien lähteiden ominaisuudet korvaavat aikaisemmat.
Esimerkki 2: Object.assign () -sovelluksen käyttö
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 )
Tuotos
(c: 3) ('0': 'a', '1': 'b', '2': 'c', c: 3)
Kuten näette, prototyyppiketjun ominaisuuksia ja lukemattomia ominaisuuksia ei voida kopioida.
Myös primitiivit kääritään esineisiin, tyhjä ja määrittelemätön jätetään huomiotta.
Koska vain merkkijonoilla on lukemattomia ominaisuuksia, ne kopioidaan kohdeobjektiin.
Suositeltava lukeminen: Javascript Object defineProperties ()