bind
INFO
この関数は互換性のために es-toolkit/compat からのみインポートできます。代替可能なネイティブ JavaScript API があるか、まだ十分に最適化されていないためです。
es-toolkit/compat からこの関数をインポートすると、lodash と完全に同じように動作します。
関数の this を固定し、partialArgs で事前に引数を提供します。
Symbol 型の bind.placeholder を使用すると、事前に提供した引数が使用される位置を決定できます。
組み込みの Function#bind とは異なり、関数の length プロパティは設定しません。
インターフェース
typescript
function bind<F extends Function>(func: F, thisObj?: unknown, ...partialArgs: any[]): F;
namespace bind {
placeholder: symbol;
}パラメータ
func(F):thisを固定する関数。thisObj(any, オプション): 関数に固定されるthisオブジェクト。partialArgs(any[]): 事前に与えられる引数。
戻り値
(F): this が固定された関数。
例
typescript
import { bind } from 'es-toolkit/compat';
function greet(greeting, punctuation) {
return greeting + ' ' + this.user + punctuation;
}
const object = { user: 'fred' };
let bound = bind(greet, object, 'hi');
bound('!');
// => 'hi fred!'
// プレースホルダーを使用してバインド
bound = bind(greet, object, bind.placeholder, '!');
bound('hi');
// => 'hi fred!'
