call()、apply()、bind()方法的使用
这三个方法尤其不好区分、也容易混淆,网上有很多文章试图解释这三个的区别及用法。有的还举例,用故事说,反而增加了理解的难度,只是想简单、快速、直接
在理解这几个方法,但是却得先理解那个故事的含义。 很无语。。。
call、apply、bind的作用是改变函数运行时this的指向
我去,啥意思?我们看一下面两个对象
var name = 'WW'
function objA() {
name: 'AA',
show: function(){
console.log(this.name)
}
}
function objB() {
name: 'BB'
}
var a = new objA()
var b = new objB()
// 注意,这里是精华
a.show() // output>> AA
a.show.call(null) // output>> WW
a.show.call(b) // output>> BB
a.show.apply