apply和call及bind的区别

ECMAScript规范给所有函数都定了call与apply方法,他们的应用非常广泛它们的作用也是一模一样只是传参的形式有区别而已
1.apply和call的用法
a.改变this指向
b.借用别的对象的方法
c.调用函数
apply,call方法都会使函数立即执行,因此他们也可以用来调用函数
func.call();
2.区别
apply()
apply方法传入两个参数:一个作为函数上下文的对象,另外一个是作为函数参数所组成的数组
函数上下文对象即this指的对象是传入的这个上下文对象
call()
call方法第一个参数也是作为函数上下文对象,但是后面传入的是一个参数列表
bind()
bind方法和call非常相似,接受的参数有两个第一个参数是作为函数上下文的对象,第二部分参数是个列表可以接收多个参数
a.bind方法返回值是函数。bind方法不会立即执行而是返回了一个改变了上下文this后的函数。而原函数中的this指向并不会改变
b.func.call(null,argument)与func.bind(null,argument)
call方法把传入的参数(第二个及之后)当作func方法的实参传进去,而bind要加上其第二个及之后的参数+func的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值