- 三者都是用来改变函数的this对象的指向的
- call和apply 直接调用方法,bind 方法调用之后返回一个新的方法,再调用
var obj = {
name: '帅哥',
hi: function (msg) {
console.log(this.name, '你好!', msg)
}
}
var objThis = {
name: '美女!'
}
// call和apply 直接调用方法
obj.hi.call(objThis);
obj.hi.apply(objThis);
// bind 方法调用之后 返回一个新的方法
// 再调用
obj.hi.bind(objThis)();
- call()接收的是参数列表,而apply()则接收参数数组。
obj.hi.call(objThis, '我家有矿')
obj.hi.apply(objThis, ['我家有矿']);
obj.hi.bind(objThis)('我家有矿')