2017-05-31 11 views
0

私は事前に割り当てられた引数を持つコールバックを別の関数に渡します。javascriptのあらかじめ割り当てられた引数でコールバックを渡す簡単な方法は?

私はフィドルを作成しましたが、それは複雑すぎるようです。

a = function(b, c){ 
    console.log(b, c); 
} 

b = function(a){ 
    a('c'); 
} 

b(
    (function(a, b){ 
     return function(c){ 
     a.apply(null,[b,c]); 
    } 
    })(a,'b') 
); 

この出力すべき: "BC" あなたが最初n引数を "修正" し.bindを使用することができます

https://jsfiddle.net/j5gys95z/

答えて

2

partial applicationを参照してください)おそらく、これを行う簡単な方法があります:

b(a.bind(null, 'b')) 

発信者がコールバックの設定を望まない限り機能します。this値、または以外の引数を最初に修正したい場合はnとなります。そのような場合は、新しい関数を定義し、必要に応じて引数をthis /に渡します。

関連する問題