首页 > 代码库 > bind方法代替闭包

bind方法代替闭包

<a href=http://www.mamicode.com/"JavaScript:">a</a><a href=http://www.mamicode.com/"JavaScript:">b</a><a href=http://www.mamicode.com/"JavaScript:">c</a><a href=http://www.mamicode.com/"JavaScript:">d</a><a href=http://www.mamicode.com/"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 参数

bind方法代替闭包