apply()和call()

apply()call()都是Function原型方法,他们可以把特定函数当做一个方法绑定到指定对象上并进行调用。

用法如下:

function.call(thisobj,args...)//接收多个参数列表
function.apply(thisobj,args)//接收一个数组或者伪类数组

其中this.obj表示指定的对象,参数args表示要传递给被调用函数的参数

实例如下:

function o(a,b){  //定义函数结构伪对象
return a*b
}
function f(a,b){  //定义简单函数
return a+b
}
alert(f.call(o,3,4)) //返回7

实例中使用call方法把函数f绑定到对象o身上,变成了o的一个方法
动态调用函数f,同时将参数3和4传递给函数f,调用函数f后返回7
apply()和call()的区别:
apply()只有两个参数,一个是新的this对象,一个是参数数组,如果args不是一个有效数组或者arguments对象,将会导致TypeError
call()可以接受多个参数,第一个参数与apply()相同,第二个是一串参数列表。
如果没有给定thisobj则默认是全局对象

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-09 15:20
腾讯给员工发甘蔗,乍一看是要去攻打字节吗?
天秤slam:排队等着挨削
投递字节跳动等公司8个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务