📄️ Εισαγωγή
Ο Αντικειμενοστραφής Προγραμματισμός (Object-Oriented Programming - OOP) είναι μια μεθοδολογία προγραμματισμοϋ, η οποία βασίζεται στην αναπαράσταση εννοιών ως αντικείμενα. Στην JavaScript, όπως είδαμε, τα αντικείμενα είναι συλλογές από ιδιότητες και μεθόδους.
📄️ This Keyword
Η λέξη-κλειδί this χρησιμοποιείται για να αναφερθούμε στο τρέχον αντικείμενο. Η τιμή του this εξαρτάται από τον τρόπο με τον οποίο καλείται η συνάρτηση που ορίζουμε σαν ιδιότητα του αντικειμένου.
📄️ Κλάσεις
Στην JavaScript χρησιμοποιούμε συναρτήσεις για να ορίσουμε μια κλάση. Οι συναρτήσεις αυτές ονομάζονται Συναρτήσεις Κατασκευής (Constructor Functions). Η κλάση αυτή ορίζει τις ιδιότητες και τις μεθόδους που θα έχουν τα αντικείμενα που δημιουργοϋνται από αυτήν. Συνηθισμένη πρακτική είναι η ονομασία των κλάσεων με κεφαλαίο πρώτο γράμμα.
📄️ Prototype
Στην JavaScript, όλα τα αντικείμενα έχουν ένα πεδίο πρωτοτύπου (prototype), ένα αντικείμενο δηλαδή από το οποίο κληρονομούνται ιδιότητες και μέθοδοι. Καθώς το πεδίο πρωτοτύπου είναι και αυτό αντικείμενο, τότε και αυτό έχει ένα πεδίο πρωτοτύπου, το οποίο μπορεί να έχει ένα άλλο πεδίο πρωτοτύπου και ούτω καθεξής. Αυτό ονομάζεται Αλυσίδα Πρωτοτύπων (Prototype Chain).
📄️ Κληρονομικότητα
Η κληρονομικότητα είναι η ικανότητα μιας κλάσης να κληρονομήσει ιδιότητες και μεθόδους από μια άλλη κλάση. Στην JavaScript, η κληρονομικότητα επιτυγχάνεται μέσω του πεδίου πρωτοτύπου.
📄️ Class Keyword
Η λέξη-κλειδί class εισήχθηκε στην JavaScript με την ES6 για να διευκολύνει τη δημιουργία κλάσεων. Η σύνταξη της class είναι πιο συντομευμένη από τη χρήση των συναρτήσεων κατασκευής. Η class δημιουργεί μια συνάρτηση κατασκευής, η οποία ονομάζεται constructor.
📄️ Extends Keyword
Η λέξη κλειδί extends χρησιμοποιείται για να δηλώσει ότι μια κλάση κληρονομεί από μια άλλη.
📄️ Στατικές ιδιότητες και μέθοδοι
Μέχρι τώρα, έχουμε δει πως μπορούμε να δημιουργήσουμε αντικείμενα από μια κλάση. Αυτά τα αντικείμενα έχουν τις δικές τους ιδιότητες και μεθόδους.