bind / call / apply
JavaScript 🟡 MidDefinition
Methodes de Function.prototype pour controler this. call(ctx, ...args) et apply(ctx, [args]) appellent immediatement. bind(ctx, ...args) retourne une nouvelle fonction avec this lie.
Analogie
call = telephoner a quelqu'un maintenant. apply = idem mais tu lis la liste des courses. bind = enregistrer le numero en favori pour appeler plus tard.
Exemple de code
function greet(msg) { return `${msg}, ${this.name}`; }
const user = { name: 'Bob' };
greet.call(user, 'Hi'); // 'Hi, Bob'
greet.apply(user, ['Hi']); // 'Hi, Bob'
const bound = greet.bind(user);
bound('Hey'); // 'Hey, Bob'
Cas d'usage
Fixer le this dans les callbacks, emprunter des methodes d'un autre objet, partial application.