bind
は、このメソッドを渡されるオブジェクトにバインドすることを知っています。しかし、私がここで理解していないのは、クラス名をバインドに渡すのはなぜですか?この声明は、「all = Promise.all.bind(Promise)」を意味しますか?
私は専門家から得た1つの答えは、「これは機能を「独立」にすることでした。これは再びわかりませんでした。私は完全に愚かなことを理解しないと1つの声明を完全に怒って行くかもしれないが、誰もこれを説明してください?
bind
は、このメソッドを渡されるオブジェクトにバインドすることを知っています。しかし、私がここで理解していないのは、クラス名をバインドに渡すのはなぜですか?この声明は、「all = Promise.all.bind(Promise)」を意味しますか?
私は専門家から得た1つの答えは、「これは機能を「独立」にすることでした。これは再びわかりませんでした。私は完全に愚かなことを理解しないと1つの声明を完全に怒って行くかもしれないが、誰もこれを説明してください?
これは「クラス名」ではないオブジェクトです。 (具体的には、機能;機能は、さらにより具体的コンストラクタ機能はJavaScriptのオブジェクトである。)
Promise.all(...)
はPromise
オブジェクト上all
プロパティを検索し、Promise
にthis
セットとall
を呼び出します。だから、ちょうどall(...)
でそれをするには、我々はそれを別の方法と呼んでも、Promise
となるように関数を束縛する必要があります。それはall = Promise.all.bind(Promise)
のことです。
我々だけall = Promise.all
をした場合、我々はPromise
を参照しています通話中にall(...)
、this
を呼び出したときに、その後、(それがstrictモードでグローバル緩いモードでオブジェクトまたはundefined
だろう)。 all
relies onthis
約束事のためのコンストラクタ関数(例えば、Promise
)を参照してください。呼び出されたときに、ということを保証するb
を呼び出す、という新機能(a
)を返しa = b.bind(c)
:私はbind
はレッツは、という別の言い方を
を渡されるオブジェクトにメソッドにこれを結合することを知っている
this
は、コール中にc
に設定されます。その結果はバインドされた関数と呼ばれ、そのthis
の値がバインドされているためです。もご覧ください(!GAHその最後の段落は、 `A`と混同 'B'を持っていると思われる場合は、リフレッシュを打つ。)
* * –
さて、私は今それを得たと思います!だから...親から関数を "抽出"する場合、予期しない結果が得られないように、 'this'を適切なオブジェクトにバインドするようにしてください。この場合、 'all'関数' this'を実際の親に割り当てて自律的になるようにします。 – Manu