Call 和 apply,bind 的区别

本文详细讲解了JavaScript中的apply()、call()和bind()函数,它们都用于改变函数this指向,但apply接收数组参数,call接受多个参数,bind返回新函数。理解这些方法有助于灵活运用和继承实现。
摘要由CSDN通过智能技术生成

定义:

apply():调一个对象的一个方法,用另一个对象替换当前对象,例如:B.apply(A,arguments);即A对象应用B对象的方法

call():调用一个对象的一个方法,用另一个对象替换当前对象

call(A,args1,args2,···);即A对象调用B对象的方法。

bind()bind()方法会创建一个函数的实例,其 this 值会被绑定到传给 bind()函数的值。意思就是 bind() 会返回一个新函数。

作用:

①改变this指向;

②借用别的对象的方法;

③单纯的调用函数;

④实现继承;

apply、call和bind的区别:

相似之处:

①都是用来改变函数的this对象的指向的;

②第一个参数都是this要指向的对象;

③都可以利用后续参数传参;

区别:

①apply、call、bind的第一个参数都是this要指向的对象,但apply只有两个参数,第二个参数为一个数组,需要传输的参数值须全部放到数组中。而call、bind一样,参数用逗号分开。

②apply、call返回的的是一个值,而bind返回的是一个函数形式,如果要执行,则后面要再加一个小括号 例如:bind(obj,参数1,参数2,)(),bind只能以逗号分隔形式,不能是数组形式。

call方法调用一个函数,其具有一个指定的this值和分别地提供的参数(参数列表)。注意:该方法的作用和apply()方法类似,只有一个区别,就是call()方法接受的是若干个参数的列表,而appl()接收的只一个数组。

感兴趣的可以去查阅更多资料 谢谢大家 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值