Skip to content

bindAll

INFO

この関数は互換性のために es-toolkit/compat からのみインポートできます。代替可能なネイティブ JavaScript API があるか、まだ十分に最適化されていないためです。

es-toolkit/compat からこの関数をインポートすると、lodash と完全に同じように動作します。

オブジェクトのメソッドを、指定された名前に基づいてオブジェクト自身に紐付けます。メソッド名は引数として提供できます。

インターフェース

typescript
function bindAll(
  object: Record<string, any>,
  ...methodNames: Array<string | string[] | number | IArguments>
): Record<string, any>;

パラメータ

  • object (Object): メソッドをバインドするオブジェクト
  • methodNames (...(string | string[] | number | IArguments)): バインドするメソッド名。以下の形式で指定可能:
    • 個別のメソッド名の文字列
    • メソッド名の配列
    • 数値(-0は特別に処理)
    • Arguments オブジェクト

戻り値

(Object): メソッドがバインドされたオブジェクト

typescript
const view = {
  label: 'docs',
  click: function () {
    console.log('clicked ' + this.label);
  },
};

bindAll(view, ['click']);
jQuery(element).on('click', view.click);
// => クリック時に 'clicked docs' がログ出力される

// 個別のメソッド名を使用
bindAll(view, 'click');
// => 上記と同じ結果

// 数値キーの処理
const obj = {
  '-0': function () {
    return -2;
  },
  '0': function () {
    return -1;
  },
};
bindAll(obj, -0);
obj['-0'](); // => -2

MIT ライセンスの下で配布されています。