bind / call / apply

JavaScript 🟡 Mid

Definition

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.

#core#interview