js bind函数详解

bind使用

// bind会构造一个新函数
// call 等会直接调用原函数 bind是新建函数 可以改变参数结构
function p(a, b, c) {
    console.log('a>>', a)
    console.log('b>>', b)
    console.log('c>>', c)
}
// f0指向this实例 a b c三个参数都在
f0 = p.bind(this)
f0(1, 2, 3)

// a参数已经被100占据 f1函数只剩下 b,c两个参数
f1 = p.bind(this, 100)
f1(2, 3)

// a b参数已经被100,200占据 f1函数只剩下 c一个参数
f2 = p.bind(this, 100, 200)
f2(3)

最终结果

a>> 1
b>> 2
c>> 3
a>> 100
b>> 2
c>> 3
a>> 100
b>> 200
c>> 3

实战应用

当你想从父组件传递给子组件 取消子组件显示的callback 可以指定this

<Child onHide={this.hideChild.bind(this)}></Child>

或者默认子组件调用只能是隐藏

<Child onHide={this.hideChild.bind(this,visible=false)}></Child>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值