call 和apply 是我们比较熟知的,这里就不做介绍了。 对于bind我们发现javascript 1.8.5 版本中原生js实现了此方法。
bind 的作用和call、applay类似,都是用于改变this关键字指向。但是它们又略有不同,一个函数进行bind后可以稍后执行,但是call 和apply 会立即执行。
eg:
window.a = 'window'
this.a = '哈',
window.setTimeout(function(){
console.log(this.a);
}.bind(this),3000)
此时输出结果是3s后输出‘哈’。 如何将bind改为call或apply,则立刻输出‘哈’。