Junior
Τι κάνει η λειτουργία `Function.prototype.bind` και ποιος είναι ο σκοπός της;
sobes.tech AI
Απάντηση από AI
Function.prototype.bind δημιουργεί μια νέα συνάρτηση που, όταν καλείται, θα έχει ένα σταθερό πλαίσιο (this) και, προαιρετικά, προκαθορισμένες παραμέτρους που προηγούνται οποιωνδήποτε παραμέτρων δοθούν στη νέα συνάρτηση κατά την κλήση.
Αυτό είναι χρήσιμο για:
- διατήρηση του πλαισίου κατά τη μεταβίβαση μεθόδων ως callback ή χειριστές συμβάντων.
- την περαιτέρω εφαρμογή (currying) συναρτήσεων.
// Παράδειγμα διατήρησης πλαισίου
const user = {
name: 'Alice',
greet: function() {
console.log(`Γειά σου, ${this.name}!`);
}
};
const greetUser = user.greet;
greetUser(); // Γειά σου, undefined! (χάθηκε το πλαίσιο)
const bindedGreetUser = user.greet.bind(user);
bindedGreetUser(); // Γειά σου, Alice! (το πλαίσιο διατηρείται)
// Παράδειγμα περαιτέρω εφαρμογής
function multiply(a, b) {
return a * b;
}
const multiplyByTwo = multiply.bind(null, 2); // null ως πλαίσιο, δεν χρειάζεται
console.log(multiplyByTwo(5)); // 10