Object Object.assign ()

Η μέθοδος JavaScript Object.assign () αντιγράφει όλες τις αμέτρητες ιδιότητες των δεδομένων αντικειμένων σε ένα αντικείμενο και την επιστρέφει.

Η σύνταξη της assign()μεθόδου είναι:

 Object.assign(target,… sources)

Η assign()μέθοδος, ως στατική μέθοδος, καλείται χρησιμοποιώντας το Objectόνομα κλάσης.

assign () Παράμετροι

Η assign()μέθοδος περιλαμβάνει:

  • target - Το αντικείμενο προορισμού - σε τι πρέπει να εφαρμοστούν οι ιδιότητες των πηγών, το οποίο επιστρέφεται μετά την τροποποίησή του.
  • πηγές - Τα αντικείμενα προέλευσης - αντικείμενα που περιέχουν τις ιδιότητες που θέλετε να εφαρμόσετε.

Επιστροφή τιμής από εκχώρηση ()

  • Επιστρέφει το αντικείμενο προορισμού.

Σημείωση: Οι ιδιότητες στο αντικείμενο προορισμού αντικαθίστανται από ιδιότητες στις πηγές εάν έχουν το ίδιο κλειδί.

Παράδειγμα 1: Χρήση Object.assign () για κλωνοποίηση και συγχώνευση αντικειμένων

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

Παραγωγή

 (όνομα: 'Alan Turing', ηλικία: 120) (όνομα: 'Alan Turing', ηλικία: 120) (a: 1, b: 12, c: 23)

Σημειώστε εδώ ότι εάν η τιμή προέλευσης είναι μια αναφορά σε ένα αντικείμενο, αντιγράφει μόνο την τιμή αναφοράς.

Επίσης, οι ιδιότητες μεταγενέστερων πηγών αντικαθιστούν παλαιότερες.

Παράδειγμα 2: Χρήση 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 )

Παραγωγή

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

Όπως μπορείτε να δείτε, δεν είναι δυνατή η αντιγραφή ιδιοτήτων στην πρωτότυπη αλυσίδα και των μη απαρίθμητων ιδιοτήτων.

Επίσης, τα πρωτόγονα θα τυλιχτούν σε αντικείμενα, αγνοούνται μηδενικά και αόριστα.

Δεδομένου ότι μόνο οι συμβολοσειρές έχουν αναρίθμητη ιδιότητα, αντιγράφονται στο αντικείμενο προορισμού.

Προτεινόμενη ανάγνωση: Javascript Object defineProperties ()

ενδιαφέροντα άρθρα...