ご存知のように、.bind()
関数のショートカットの提案があるので、次のように書くことができます。
::this.handleStuff
es5でも同様に機能します。
this.handleStuff.bind(this)
私の質問は、この方法で引数を渡すことは可能でしょうか?
前述のショートカットでこれを書く方法を意味します:
this.handleStuff.bind(this, 'stuff')
これはReactではかなり一般的なパターンなので、少し短くするといいでしょう。
いいえ。 bind operator ( spec提案 )には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')