//定义程序员对象
var programmer = {
name: '程序员',
programming: function(ablity1,ablity2,ablity3){
console.log(`${this.name}编程`);
console.log(`更多技能: ${ablity1}、${ablity2}、${ablity3}、`)
}
}
//定义外卖对象
var delivery = {
name: '外卖员',
sendFood: function(){
console.log(`${this.name}送餐`)
}
}
programmer.programming();//程序员编程
delivery.sendFood();//外卖员送餐
//使用call及apply改变this的指向
programmer.programming.call(delivery);//外卖员编程
programmer.programming.apply(delivery);//外卖员编程
//传参
programmer.programming.call(delivery,'炒菜','弹钢琴','换轮胎');
programmer.programming.apply(delivery,['炒菜','弹钢琴','换轮胎'])
/**
* 总结
* call和apply的作用都是改变this作用域,都是在特定作用域中调用函数。
* 当一个对象没有某个方法,而其他对象有,我们就可以使用call或apply实现某个方法的复用。
* call和apply使用方法基本相同,唯一不同之处就是它们的参数规则:call方法接受一个参数列表,而apply方法接受一个包含多个参数的数组。
* **/
call和apply使用说明
最新推荐文章于 2022-07-21 22:17:55 发布