老师,请问如何理解bind?

老师,请问如何理解bind?

<li key={index} onClick={this.handleItemClick.bind(this, index)}>{value}</li>

.bind如何使用?.bind()里的值就可以传出去吗?请问这该怎样理解?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这里bind是为了绑定this的作用域 ,即第一个参数是改变函数中作用域,第二个参数是给函数传递的参数。第二个参数这里就不说了,想要给函数传递什么参数就传递即可,主要理解一下第一个参数。例如如下代码中,如果去掉bind,那么this指向函数调用者,这里是li绑定事件,那么this指向li。 handleItemClick中就无法通过this使用TodoItem的数据。加上bind之后,会改变handleItemClick中的作用域,即this会指向当前组件TodoItem,handleItemClick方法中就可以通过this使用当前组件中的其他数据和方法了。http://img1.sycdn.imooc.com//climg/5e8a925b097b2e9f08650620.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • TaraTara 提问者 #1
    谢谢老师, 1. 那么我是否可以这么理解: 如果没有bind,this指向函数调用者;如果有bind,this指向当前组件? 2.如何判断函数调用者?是哪个事件绑定了函数哪个就是函数调用者吗?
    2020-04-06 18:31:32
  • 好帮手慕夭夭 回复 提问者 TaraTara #2
    聪明,可以这样理解~
    2020-04-06 19:23:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师