が、私はこの単純な状況を持っていると言うオブジェクトFunction.prototype.bind
のが、私の質問は:Function.prototype.bindは
がarguments
がf
に単に最初の引数として適用されようとしているか、それは、f.apply(null, arguments)
のように、広がることでしょうか?このオンラインの例を見つけるのが難しいです。
が、私はこの単純な状況を持っていると言うオブジェクトFunction.prototype.bind
のが、私の質問は:Function.prototype.bindは
がarguments
がf
に単に最初の引数として適用されようとしているか、それは、f.apply(null, arguments)
のように、広がることでしょうか?このオンラインの例を見つけるのが難しいです。
.bind
続きを読むない.apply
、.call
に似ています - 2番目の引数は、ちょうど第二引数、つまりとして扱われます。だからあなたの例では:
f(1,2,3)
はそうあなたがする必要があるので、Function.prototype.bind
Function.prototype.call
と同様の署名を持っている、fn([1,2,3])
arguments
は、単にf
の最初の引数として渡されます。さらに、より多くの引数を使用してバインドされた関数を呼び出すと、それらの引数はバインドされた関数の後ろに来ます(つまり、最初の引数を上書きすることはできません)。
はhere
リンクは大丈夫とは思われません。 –
うんを生成します:
fn.bind(null, ...arguments);
または
fn.bind(null, ...Array.from(arguments));
'const fn = f.bind(null、 ...引数); '広げる –
' f.apply.bind(f、null、arguments) 'または' f.bind.apply(f、[null、... arguments]) 'を使用してください。 – Bergi
あなたはnode.jsでは、ES6を使用してください! '関数f(... args){const fn =()=> f(... args); } ' – Bergi