0

私は JavaScript を学んでいて、Ninja Secrets の本を読んでいます。これが彼がクリック イベントをボタンにバインドする方法です。私はただの初心者であり、私がやりたかった学習は、これを行うための最良かつ最終的な方法 (ボタンにクリックハンドラーを追加する) であるか、クロージャーを示すための例としてこれを使用しただけであり、これは実際の方法ではありませんされている世界。

  <body>
    <button id="test">Click Me!</button>

    <script>
      function bind(context,name){                                 //#1
        return function(){                                         //#1
          return context[name].apply(context,arguments);           //#1
        };                                                         //#1
      }                                                            //#1

      var button = {
        clicked: false,
        click: function(){
          this.clicked = true;
          assert(button.clicked,"The button has been clicked");
          console.log(this);
        }
      };

      var elem = document.getElementById("test");
      elem.addEventListener("click",bind(button,"click"),false);     //#2

    </script>

  </body>
4

1 に答える 1

2

彼は主に、これが教育目的でどのように機能するかを説明しています。最新の ECMAScript 5 にはネイティブFunction.bind (ドキュメントはこちら)があるため、次のことができます。

elem.addEventListener("click", button.click.bind(button), false);
于 2013-04-09T17:59:51.237 に答える