Middle
Ζωντανός κώδικας: προσδιορίστε την έξοδο στην κονσόλα για τον κώδικα με συναρτήσεις, βελάκια συναρτήσεων, αντικείμενα και πλαίσιο (this), call/bind
sobes.tech AI
Απάντηση από AI
Στην JavaScript, το πλαίσιο εκτέλεσης (this) εξαρτάται από τον τρόπο με τον οποίο καλείται η συνάρτηση. Οι βελόνα (arrow) συναρτήσεις δεν έχουν δικό τους this — το κληρονομούν από το εξωτερικό λεξικό περιβάλλον.
Παράδειγμα:
const obj = {
value: 42,
regularFunc: function() {
console.log(this.value);
},
arrowFunc: () => {
console.log(this.value);
}
};
obj.regularFunc(); // 42 — το this αναφέρεται στο obj
obj.arrowFunc(); // undefined ή η τιμή από το εξωτερικό πλαίσιο (π.χ. window.value)
// Χρήση call/bind:
function show() {
console.log(this.name);
}
const user = { name: 'Alice' };
show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice
Έτσι, τα call και bind επιτρέπουν να ορίσετε ρητά το this κατά την κλήση της συνάρτησης, αλλά δεν λειτουργούν με βελόνα (arrow) συναρτήσεις, καθώς το this τους έχει οριστεί λεξικογραφικά.