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 回答