bind方法代替闭包

<a href="JavaScript:">a</a>
<a href="JavaScript:">b</a>
<a href="JavaScript:">c</a>
<a href="JavaScript:">d</a>
<a href="JavaScript:">e</a>
<script>
var i,s=document.querySelectorAll("a");
for(i=0;i<s.length;i++)
  s[i].addEventListener("click",function(){
    alert(this); //bind的第一个参数可以在函数内使用this得到
  }.bind(i)/*这里对匿名回调函数bind一个参数*/);
</script>

 这里的bind可不是事件,只是把函数绑定上默认参数的方法而已。

 <script type="text/javascript">
        var f, o, fo, name = "SB";
        o = { name: "次碳酸钴" };
        f = function (e) { console.log(this.name + "" + e) };
        fo = f.bind(o, "颤抖吧人类!");

        f("直接调用时参数是有效的!");
        fo("这里的参数不会传到e!");
    </script>

通过代码可知: bind 改变了原来的 function 参数

posted @ 2014-11-07 16:34  Coding_Yong  阅读(661)  评论(0编辑  收藏  举报