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 参数