Μέθοδος Object.assign

Η μέθοδος Object.assign αντιγράφει ιδιότητες και τιμές του πηγαίου αντικειμένου, επιστρέφοντας ένα νέο αντικείμενο. Στην πρώτη παράμετρο της μεθόδου ορίζουμε το αντικείμενο στόχο, στο οποίο αντιγράφουμε, και στο δεύτερο - καθορίζουμε τα αντικείμενα που πρέπει να αντιγραφούν.

Σύνταξη

javascriptObject.assign(πού να αντιγραφεί, αντικείμενα);

Παράδειγμα

Ας πάρουμε ένα νέο αντικείμενο από το πηγαίο:

javascriptlet obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript{a: 1, b: 2, c: 3}

Παράδειγμα

Τώρα ας πάρουμε ένα νέο αντικείμενο από πολλά πηγαία, απαριθμώντας τα στην παράμετρο χωρισμένα με κόμμα:

javascriptlet obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};

let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);

Μετά την εκτέλεση του κώδικα θα δούμε ότι τα δύο πηγαία αντικείμενα συγχωνεύτηκαν σε ένα νέο αντικείμενο:

javascript{a: 1, b: 2, c: 3, d: 4}

Παράδειγμα

Επίσης, η μέθοδος Object.assign μπορεί να εφαρμοστεί για τη λήψη ενός νέου πίνακα, καθώς ο πίνακας κατά τύπο ανήκει επίσης σε αντικείμενα. Ας φτιάξουμε έναν νέο πίνακα, αντιγράφοντας στοιχεία από τον πηγαίο:

javascriptlet arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);

console.log(newArr);

Αποτέλεσμα εκτέλεσης κώδικα:

javascript[1, 2, 3, 4]

Παράδειγμα

Όταν χρησιμοποιείται η μέθοδος Object.assign πρέπει να προσέχουμε προσεκτικά τη σύνταξη. Για παράδειγμα, εάν δεν προσθέσουμε στην πρώτη παράμετρο το αντικείμενο στόχο, αλλά αφήσουμε μόνο το αντικείμενο προς αντιγραφή, τότε αυτό θα επιστραφεί:

javascriptlet obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);

console.log(newObj === obj);

Αποτέλεσμα εκτέλεσης κώδικα:

javascripttrue

Δείτε επίσης

  • μέθοδος Object.keys,
    που επιστρέφει έναν πίνακα από ιδιότητες του αντικειμένου
  • μέθοδος Object.values,
    που επιστρέφει έναν πίνακα από τιμές του αντικειμένου