apply call bind的使用区别

bind(this对象,arg1,arg2。。。) ,第二个参数为参数列表

  • 用于改变this指向;
  • 调用会返回一个新的改变了this指向的函数,并不会立即执行而是需要调用新的函数;
  • 可以进行部分传参;
  • 如果是箭头函数无法改变this只能改变参数;

使用方式:
直接改变this的方式
在这里插入图片描述
在这里插入图片描述

手写bind()

Function.prototype.myBind(context, ...bindArgs){
    //context: bind传入的this;
    //bindArgs传入的参数
    const self = this; //当前函数本身
    return function(...args){
        const newArgs = bindArgs.concat(args);
        return self.apply(context, newArgs)
    }

}

apply(this指的对象,[…args]),第二个参数传递为一个数组

apply接收两个参数,第一个参数为调用的函数内部的this指向,第二个参数传递的则是一个数组,可以是类数组,

call(this所指对象,arg1,arg2.。。。。)

call传入的参数不固定,与bind传入的参数意义相同。第一个参数指函数体内this所指的对象,第二个参数往后依次被传入方法中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值