Μέθοδος Object.assign
Η μέθοδος Object.assign αντιγράφει ιδιότητες και τιμές του πηγαίου αντικειμένου,
επιστρέφοντας ένα νέο αντικείμενο. Στην πρώτη παράμετρο της μεθόδου
ορίζουμε το αντικείμενο στόχο, στο οποίο αντιγράφουμε,
και στο δεύτερο - καθορίζουμε τα αντικείμενα που πρέπει να αντιγραφούν.
Σύνταξη
Object.assign(πού να αντιγραφεί, αντικείμενα);
Παράδειγμα
Ας πάρουμε ένα νέο αντικείμενο από το πηγαίο:
let obj = {'a': 1, 'b': 2, 'c': 3};
let newObj = Object.assign({}, obj);
console.log(newObj);
Αποτέλεσμα εκτέλεσης κώδικα:
{a: 1, b: 2, c: 3}
Παράδειγμα
Τώρα ας πάρουμε ένα νέο αντικείμενο από πολλά πηγαία, απαριθμώντας τα στην παράμετρο χωρισμένα με κόμμα:
let obj1 = {'a': 1, 'b': 2};
let obj2 = {'c': 3, 'd': 4};
let newObj = Object.assign({}, obj1, obj2);
console.log(newObj);
Μετά την εκτέλεση του κώδικα θα δούμε ότι τα δύο πηγαία αντικείμενα συγχωνεύτηκαν σε ένα νέο αντικείμενο:
{a: 1, b: 2, c: 3, d: 4}
Παράδειγμα
Επίσης, η μέθοδος Object.assign
μπορεί να εφαρμοστεί για τη λήψη ενός νέου πίνακα,
καθώς ο πίνακας κατά τύπο ανήκει επίσης σε αντικείμενα.
Ας φτιάξουμε έναν νέο πίνακα, αντιγράφοντας στοιχεία από
τον πηγαίο:
let arr = [1, 2, 3, 4];
let newArr = Object.assign([], arr);
console.log(newArr);
Αποτέλεσμα εκτέλεσης κώδικα:
[1, 2, 3, 4]
Παράδειγμα
Όταν χρησιμοποιείται η μέθοδος Object.assign
πρέπει να προσέχουμε προσεκτικά τη σύνταξη.
Για παράδειγμα, εάν δεν προσθέσουμε
στην πρώτη παράμετρο το αντικείμενο στόχο, αλλά αφήσουμε
μόνο το αντικείμενο προς αντιγραφή, τότε αυτό θα επιστραφεί:
let obj = {1:'a', 2: 'b', 3: 'c'};
let newObj = Object.assign(obj);
console.log(newObj === obj);
Αποτέλεσμα εκτέλεσης κώδικα:
true
Δείτε επίσης
-
μέθοδος
Object.keys,
που επιστρέφει έναν πίνακα από ιδιότητες του αντικειμένου -
μέθοδος
Object.values,
που επιστρέφει έναν πίνακα από τιμές του αντικειμένου