区别:call和apply都是调用函数,传参方式不同。call和bind传参方式一样,call会直接调用,bind作为返回值返回函数。
let dog = {
name: '旺财',
sayName() {
console.log('我是' + this.name);
},
eat(food1, food2) {
console.log('我喜欢吃骨头' + food1 + food2);
}
}
let cat = {
name: 'maiomaio'
}
//call可以调用函数,call可以改变函数中的this指向
// fun.call(cat);
// dog.sayName.call(cat);
// dog.eat.call(cat, '鱼', '肉');
// dog.eat.apply(cat, ['鱼', '肉']);
let fun = dog.eat.bind(cat, '鱼', '肉');
fun();