⊗jsPmCxUFC 434 of 505 menu

Το Context μιας μη δεσμευμένης συνάρτησης στο JavaScript

Ας δούμε τι συμβαίνει αν σε μια συνάρτηση χρησιμοποιήσουμε το this, αλλά δεν τη δεσμεύσουμε σε οποιοδήποτε στοιχείο, έτσι:

function func() { console.log(this); } func();

Σε αυτήν την περίπτωση, το αποτέλεσμα εξαρτάται από το αν η αυστηρή λειτουργία είναι ενεργοποιημένη ή όχι. Εάν η λειτουργία δεν είναι αυστηρή, τότε στο this θα υπάρχει μια αναφορά στο window:

function func() { console.log(this); // αναφορά στο παράθυρο window } func();

Αν όμως η λειτουργία είναι αυστηρή, τότε στο this θα υπάρχει undefined:

"use strict"; function func() { console.log(this); // undefined } func();

Από τα παραπάνω, μπορεί να φαίνεται ότι στη λειτουργία αυστηρού τύπου το this θα είναι πάντα undefined. Όμως, δεν είναι έτσι! Αν απλά εκτυπώσουμε το this έξω από μια συνάρτηση, τότε σε αυτό θα υπάρχει αναφορά στο window ανεξάρτητα από τη λειτουργία:

"use strict"; console.log(this); // στο this αναφορά στο window

Συμπεράσματα

Σε οποιαδήποτε συνάρτηση μπορούμε να γράψουμε this, αυτό δεν θα οδηγήσει σε σφάλματα JavaScript. Αλλά το τι ακριβώς θα περιέχει αυτό το this δεν ορίζεται μέχρι τη στιγμή της κλήσης της συνάρτησης. Επιπλέον, σε διαφορετικές κλήσεις της συνάρτησης το this μπορεί να πάρει διαφορετική τιμή. Όλα εξαρτώνται από το context στο οποίο κλήθηκε η συνάρτηση.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη