Sobes.tech
Junior

Ποια είναι η διαφορά μεταξύ των δύο τρόπων ορισμού μιας συνάρτησης;

sobes.tech AI

Απάντηση από AI

Βασική διαφορά είναι το πλαίσιο this.

Τρόπος ορισμού συνάρτησης Διαφορά
δήλωση συνάρτησης Το πλαίσιο this καθορίζεται από το πώς καλείται η συνάρτηση. Ανυψώνεται πριν από την εκτέλεση του κώδικα (hoisting).
βέλος συνάρτηση Το πλαίσιο this κληρονομείται από το περιβάλλον (λεξικό). Δεν ανυψώνεται (χωρίς hoisting).
// δήλωση συνάρτησης
function κανονικήΣυνάρτηση() {
  console.log(this); // `this` εξαρτάται από την κλήση
}

// βέλος συνάρτηση
const βέλοςΣυνάρτηση = () => {
  console.log(this); // `this` κληρονομείται από το περιβάλλον όπου ορίζεται η συνάρτηση
};

Οι βέλος συναρτήσεις δεν έχουν το δικό τους αντικείμενο arguments (λαμβάνεται από το εξωτερικό πλαίσιο) και δεν μπορούν να χρησιμοποιηθούν ως κατασκευαστές με τον τελεστή new.