1. ホーム
  2. javascript

[解決済み] JavaScript ダブルコロン(バインド演算子)

2022-06-11 19:01:21

質問

ご存知のように、このプロジェクトには .bind() 関数があるので、それを書けばよい。

::this.handleStuff

で、es5ではこのように動作します。

this.handleStuff.bind(this)

質問ですが、この方法で引数を渡すことは可能でしょうか?

前述のショートカットを使った書き方ということです。

this.handleStuff.bind(this, 'stuff')

Reactでは結構よくあるパターンなので、少し短くするといいかもしれませんね。

どのように解決するのか?

いいえ。 バインド演算子 ( 仕様提案 ) には2つのフレーバーがあります。

  • メソッド抽出

    ::obj.method     ≡ obj.method.bind(obj)
    
    
  • 仮想メソッド呼び出し

    obj::function    ≡ function.bind(obj)
    obj::function(…) ≡ function.call(obj, …)
    
    

どちらも 部分適用 . あなたが望むものには、矢印機能を使用する必要があります。

(...args) => this.handleStuff('stuff', ...args) ≡ this.handleStuff.bind(this, 'stuff')