Oct
15
2016
Javascript的bind
bind主要是为了改变函数内部的this指向,这个是在ECMA5以后加入的,所以IE8一下的浏览器不支持
bind方法会创建一个新函数,称为绑定函数.当调用这个绑定函数时,绑定函数会以创建它时传入bind方法的第一个参数作为this,传入bind方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数
可以看这段实例:
var logger = { x: 0, updateCount: function(){ this.x++; console.log(this.x); } } // 下面两段代码的实现是一样的 document.querySelector('button').addEventListener('click', function(){ logger.updateCount(); }); //用这种方式让代码更简洁,当然这只是bind的一种场景 document.querySelector('button').addEventListener('click', logger.updateCount.bind(logger));
发表评论: