Σφάλμα πρόσβασης σε ιδιότητα αντικειμένου στο JavaScript
Κατά την πρόσβαση σε μια ιδιότητα ενός αντικειμένου, το όνομα αυτής της ιδιότητας δεν μπορεί να αποθηκευτεί σε μια μεταβλητή. Ας δούμε γιατί. Ας υποθέσουμε ότι έχουμε το ακόλουθο αντικείμενο:
let obj = {a: 1, b: 2, c: 3};
Ας υποθέσουμε ότι μια μεταβλητή περιέχει το όνομα της ιδιότητας, την τιμή της οποίας θέλουμε να πάρουμε:
let key = 'a';
Ας προσπαθήσουμε να προσπελάσουμε την ιδιότητα του αντικειμένου, χρησιμοποιώντας αυτήν τη μεταβλητή:
console.log(obj.key); // undefined
Ο παραπάνω κώδικας δεν θα λειτουργήσει, καθώς
ουσιαστικά αναζητούμε μια ιδιότητα με όνομα
'key', και όχι την ιδιότητα της οποίας το όνομα αποθηκεύεται
στη μεταβλητή key. Δηλαδή, στην πραγματικότητα
ο κώδικάς μας είναι ισοδύναμος με το ακόλουθο:
console.log(obj['key']);
Ο μόνος τρόπος για να προσπελάσουμε ένα στοιχείο με βάση ένα κλειδί από μια μεταβλητή είναι να γράψουμε αυτήν τη μεταβλητή σε αγκύλες:
console.log(obj[key]);
Διορθώστε το σφάλμα που πραγματοποιήθηκε στον ακόλουθο κώδικα:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj.prop);
Διορθώστε το σφάλμα που πραγματοποιήθηκε στον ακόλουθο κώδικα:
let obj = {x: 1, y: 2, z: 3};
let prop = 'x';
console.log(obj['prop']);