logo

Μία “περίεργη” συμπεριφορά στην JavaScript

21/08/2020

Έπεσα σε ένα θεματάκι, σε JavaScript, που δεν περίμενα να δουλεύει με αυτόν τον τρόπο.

Το πρόβλημα ήταν απλό. Ήθελα να προσθέσω κλώνο ενός object (που έχει κάποια έτοιμα properties), μέσα σε ένα array. Για παράδειγμα:

photos.push(emptyPhoto))

Τελικά όμως έτσι δεν αντιγράφεται απλά ένας κλώνος του emptyPhoto μέσα στο photos. Αλλά το photos θα έχει τώρα reference στο emptyPhoto. Δηλαδή τα περιεχόμενα του emptyPhoto θα αλλάζουν με ότι βάζουμε π.χ. στο photos[0].

Για να λειτουργήσει όπως θέλω, κάνω τελικά αυτό:

photos.push(Object.assign({}, emptyPhoto))

Write your comment

rocean (at) error.gr
rocean
error.gr
feed