Sobes.tech
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