【JavaScript】apply&call

函数调用

  • 一、调用外部函数
  • 在对象需要调用外部方法时,我们可以这样处理:
window.color='windowRed';
function sayColor(){        //动态执行,第一次this指向window、第二次this指向box
    alert(this.color);          
}

var box={
    color:'boxblue'
};

box.sayColor=sayColor;          //通过赋值语句将window.sayColor方法复制到box里面,使box具有window的sayColor方法
box.sayColor();         //这里执行box通过赋值从window对象借来的sayColor方法,this指向box对象 */

通过第10行代码,box.sayColor获得window.sayColor的方法;同时this指针由window指向box,从而输出box的color属性值。
输出box.color的值boxblue
- 二、apply和call
- 1、相同点
- 1)两者都是非继承而来的方法;
- 2)两者都是通过接收参数实现函数的调用
- 2、不同点
- 1)apply传递的是参数的集合
- 2)call传递的是一个个单独的参数
- 3、参考
- 1)再不需要传递参数时,推荐使用call调用函数,效率会更高一点。
- 2)通过call或者apply可以将类和方法的低耦合,从而提高代码的维护效率

var color='red';
var box={
    color:'blue'
};
function sayColor()
{
    alert(this.color);          //提供被调用的函数体,本属于window
}

sayColor.call(this);            //window
sayColor.call(box);         //box

函数调用/冒充
上述代码中,通过call,box对象直接获取到window.sayColor,这样通过代码的重用,可降低开发工作量和运维工作量。

感谢您的宝贵时间,祝生活愉快,谢谢~~
——书生

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值