JavaScript の bind とは
bind は関数オブジェクトに備わっているメソッドで、新しい関数を返す。返された関数は、元の関数に特定の this 値や引数を固定して呼び出すことができる。
function greet(greeting, name) {
return greeting + ', ' + name;
}
const sayHelloTo = greet.bind(null, 'Hello');
console.log(sayHelloTo('Alice')); // "Hello, Alice"
const obj = {
x: 42,
getX: function() {
return this.x;
}
};
const unboundGetX = obj.getX;
console.log(unboundGetX()); // undefined
const boundGetX = obj.getX.bind(obj);
console.log(boundGetX()); // 42bind はコールバックやイベントハンドラで this が失われる場面で有効に機能する。また、カリー化や部分適用のように関数の使い回しを便利にする役割も持っている。