The this keyword

Στην προηγούμενη σελίδα, είδαμε τη λέξη-κλειδί this tνα χρησιμοποιείται μέσα σε ένα αντικείμενο.

Αλλά τι είναι αυτό το this?

Γενικά, η λέξη-κλειδί this αναφέρεται στο πλαίσιο στο οποίο καλείται η συνάρτηση.

Στο προηγούμενο παράδειγμα μας:

var darkChoco = {
cacao:"80%",
milk:"0%",
grams:100,
getFullInfo : function () {
        return this.cacao + " " + this.milk + " " + this.grams;
    }
};

this αναφέρεται στις τιμές των cacao, milk and grams.

Η σημασία του this αλλάζει, ανάλογα με το πού το χρησιμοποιούμε

Τώρα ανοίξτε την κονσόλα και πληκτρολογήστε : this;

Τι βλέπετε;

Answer

Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, frames: Window, …}

Όταν δεν υπάρχει καμία συνάρτηση σχετική με αυτό και απλά καλούμε, το περιβάλλον αυτής της κλήσης είναι το παγκόσμιο πλαίσιο -  global context. Σε ένα πρόγραμμα περιήγησης στο Web, ΄όπου κανάνας κώδικας javaScript δεν έχει καθοριστεί, έχει το Παράθυρο - Window ως παγκόσμιο αντικείμενο - global object.  Έτσι, σε αυτή την περίπτωση, this αναφέρεται στο αντικείμενο Window.

Μια άλλη πολύ σημαντική χρήση this είναι στις constructor functions. Θα μάθουμε περισσότερα γι' αυτές στο επόμενο  Submodule.