自定义组件怎么接受返回参数_call、apply、bind的区别和自定义

d1392310ef7333a9e169eb71bd73c4e0.png

一、区别call()/apply()/bind()

  • call(obj)/apply(obj): 调用函数, 指定函数中的this为第一个参数的值
  • bind(obj): 返回一个新的函数, 新函数内部会调用原来的函数, 且this为bind()指定的第一参数的值
  • 注意: 如果obj是null/undefined, this为window

1). 应用

  • call()/bind()应用: 根据伪数组生成真数组
  • bind(): react中组件的自定义方法 / vue中的事件回调函数内部

2). 自定义call()/apply()

  • 给obj添加一个临时方法, 方法名任意, 值为当前函数
  • 通过obj调用这个临时方法, 并将接收的参数传入
  • 删除obj上的这个临时方法属性

3). 自定义实现bind()

  • 返回一个新函数
  • 在新函数内部通过原函数对象的call方法来执行原函数, 指定原函数的this为obj指定参数为bind调用的参数和后面新函数调用的参数

二、自定义call()/apply()/bind()

1). 自定义call()/apply()

  • 给obj添加一个临时方法, 方法名任意, 值为当前函数
  • 通过obj调用这个临时方法, 并将接收的参数传入
  • 删除obj上的这个临时方法属性
  • 代码
// 自定义call  

2). 自定义实现bind()

  • 返回一个新函数
  • 在新函数内部通过原函数对象的call方法来执行原函数指定this为obj指定参数为bind调用的参数和后面新函数调用的参数
  • 代码
// 自定义bind  

三、测试

function 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值