学习小结:js中bind,apply,call之间的区别

该文章主要了解js中这三个修改this指向api的异同之处

同:这三个api都是用来修改被被调用的方法内部this指向,以及传参

异:apply的传参方式是以数组的方式传入第二个参数,而bind和call除了第一个参数是this指向,后面的参数与方法一致

例:

let x = {}
function fun(a,b,c) {
    console.log(a+b+c)
}

fun.apply(x,[1,2,3]) // 6

fun.bind(x,1,2,3)() // 6

fun.call(x,1,2,3) // 6

bind与call的区别:上面提到apply与其他两个区别,那么bind和call的区别又是什么呢,其实就是bind不会执行这个函数仅仅修改了this指向和传参,然后返回一个新函数,call却会直接执行

例:

let x = {}
function fun(a,b,c) {
    console.log(a)
    console.log(b)
    console.log(c)
} 
let fun2 = fun.bind(x,1,2,3) 
fun2() // 6
         
fun.call(x,1,2,3) // 6

这三个其实非常的好懂区别也不大!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值