JavaScript初识call()与apply()

  • 每个函数都包含两个非继承而来的方法:apply()和call()。
  • 他们的用途相同,都是在特定的作用于中调用函数。
  • call()与apply()的第一个参数都是需要调用的函数对象,在函数体内这个参数就是this的值,剩余的参数是需要传递给函数的值,call()与apply()的不同就是call()传的值可以是任意的,而apply()传的剩余值必须为数组。

call()方法:
语法:call([thisObj[,arg1[,arg2[,[,argN]]]]])
定义:调用一个对象的一个方法,以另一个对象替换当前对象。
参数: thisObj-可选项。被用作当前对象的对象。argN-可选项。将被传递方法参数序列。
说明: call()方法可以用来代替另一个对象调用一个方法。

apply()方法
语法: apply([thisObj[,argArray]])
定义: 应用某一对象的一个方法,用另一个对象替换当前对象。

常用实例

// 使用add来替换sub
function add(a,b){
alert(a+b);
}
function sub(a,b){
alert(a-b);
}

add.call(sub,3,1);
/*apply用法
*add.apply(sub,[3,1]);
*/
/////////////////////////////////////////
运行结果为:alert(4);
add.call(sub,3,1)==add(3,1)

call方法还有更多应用,与继承相关,相关内容稍后再做了解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值