ホームページ  >  に質問  >  本文

javascript - js拡張プロトタイプメソッドにおけるこの指摘の問題

書籍『JavaScript Ninja Secrets』には、プロトタイプ ライブラリと関数バインド コードの例が含まれています。 リーリー

関数をチェックするためにブレークポイントを使用します

bind内部の fn は myFunctionこの関数をよく理解していません。私の理解では、Function.prototype を使用するだけです。 プロトタイプ拡張メソッド 宣言された変数 fn=this; 内の変数 var fn=this; は、この例の myFunction のように、このメソッドを使用する関数を指します。 .binnd(myObject);bin メソッドを呼び出します。fnmyFunction を指します。この関数が正しいかどうかはわかりません

漂亮男人漂亮男人2733日前748

全員に返信(1)返信します

  • 迷茫

    迷茫2017-05-19 10:38:17

    実は、質問の意味がよくわからないので、アイデアを交えながらコードを見ていきましょう

    myFunction.bind(myObject) がプロトタイプのバインド関数に入ります

    1. myFunctionをfnに代入し、パラメータを配列argsに変換し、最初のパラメータを削除してobjectに代入します。

    2. 関数を返してからクロージャについて考えれば理解できるでしょう。この関数によって行われる作業は、単に myFunction.apply(myObject,[...ここに他のパラメーターがあります]) として理解できます

    aFunction()

    myFunction.apply(myObject,[...ここにはパラメータはありません])です
    次に、applyの関係により、myFunctionの内部に入ります、これはmyObject、そして作業はmyObject==myObjectです
    Return本当

    返事
    0
  • キャンセル返事