Πώς λειτουργεί το σύστημα πρωτοτύπων στη JavaScript;
sobes.tech AI
Απάντηση από AI
Στο JavaScript, το σύστημα πρωτοτύπων είναι ένας μηχανισμός κληρονομιάς όπου τα αντικείμενα μπορούν να κληρονομήσουν ιδιότητες και μεθόδους από άλλα αντικείμενα.
Κάθε αντικείμενο έχει μια εσωτερική ιδιότητα [[Prototype]] (προσβάσιμη μέσω __proto__ ή Object.getPrototypeOf), που δείχνει σε ένα άλλο αντικείμενο — το πρωτότυπο. Αν κατά την πρόσβαση σε μια ιδιότητα ενός αντικειμένου δεν βρεθεί, η αναζήτηση συνεχίζεται στο πρωτότυπο, μετά στο πρωτότυπο του πρωτοτύπου και ούτω καθεξής, μέχρι να φτάσει το null.
Αυτό επιτρέπει τη δημιουργία αλυσίδων πρωτοτύπων και την υλοποίηση κληρονομικότητας χωρίς κλάσεις (αν και στις σύγχρονες εκδόσεις JS υπάρχει η σύνταξη κλάσεων, που χρησιμοποιεί υποκρυπτόμενα πρωτότυπα).
Παράδειγμα:
const ζώο = {
speak() {
console.log('Το ζώο μιλάει');
}
};
const σκύλος = Object.create(ζώο);
σκύλος.bark = function() {
console.log('Γαβ!');
};
σκύλος.bark(); // Γαβ!
σκύλος.speak(); // Το ζώο μιλάει (κληρονομημένο από το ζώο)
Έτσι, τα πρωτότυπα επιτρέπουν στα αντικείμενα να μοιράζονται συμπεριφορές και ιδιότητες, που αποτελούν τη βάση του αντικειμενοστραφούς προγραμματισμού στο JavaScript.