Junior
Ποια είναι η διαφορά μεταξύ των δύο τρόπων ορισμού μιας συνάρτησης;
sobes.tech AI
Απάντηση από AI
Βασική διαφορά είναι το πλαίσιο this.
| Τρόπος ορισμού συνάρτησης | Διαφορά |
|---|---|
δήλωση συνάρτησης |
Το πλαίσιο this καθορίζεται από το πώς καλείται η συνάρτηση. Ανυψώνεται πριν από την εκτέλεση του κώδικα (hoisting). |
βέλος συνάρτηση |
Το πλαίσιο this κληρονομείται από το περιβάλλον (λεξικό). Δεν ανυψώνεται (χωρίς hoisting). |
// δήλωση συνάρτησης
function κανονικήΣυνάρτηση() {
console.log(this); // `this` εξαρτάται από την κλήση
}
// βέλος συνάρτηση
const βέλοςΣυνάρτηση = () => {
console.log(this); // `this` κληρονομείται από το περιβάλλον όπου ορίζεται η συνάρτηση
};
Οι βέλος συναρτήσεις δεν έχουν το δικό τους αντικείμενο arguments (λαμβάνεται από το εξωτερικό πλαίσιο) και δεν μπορούν να χρησιμοποιηθούν ως κατασκευαστές με τον τελεστή new.