javascript - 请简单解释我何时/为什么需要使用 bind()

标签 javascript reactjs

我什么时候做 <CustomComponent function = {this.FunctionName}/>

而不是 <CustomComponent function = {this.FunctionName.bind(this)}

React 的文档提到 bind()解决了这个有问题的不平等: obj.method(); =/= var method = obj.method; method(); .第二次调用方法与第一次调用有何不同?它不能访问它被调用的对象实例的实例变量等吗?此外,bind() 中的参数到底是什么? - 即是 this.FunctionName.bind(this)绑定(bind)到 FunctionName

最佳答案

每当您创建一个新函数(箭头函数除外)时,您都会创建它自己的 this 实例。 .所以在里面你不能使用父级的 this 的范围

Bind 创建了一个新的函数,它将有 this设置为传递给 bind() 的第一个参数.

所以如果在这里 <CustomComponent function = {this.FunctionName.bind(this)}你通过 parent 的 this .

这样做是为了让您可以在函数内引用状态。如果您不想使用绑定(bind),那么您可以将函数设为箭头函数。

关于javascript - 请简单解释我何时/为什么需要使用 bind(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59350539/

相关文章:

javascript - 谷歌地图可以设置为慢速恒平移吗?就像一场全局革命?

javascript - onClick 仅适用于所有其他 li

javascript - React Native <Modal/> onDismiss 未被调用

javascript - 如何仅在第一次播放声音 false value after true

javascript - react + MongoDB 端口

javascript - ReactJS中箭头函数有什么用?

javascript - 一个页面加载两个js函数

javascript - func() => {} 和 func = () => {} 有什么区别?

javascript - 使用 Ionic/UI-Router 难以达到子状态

javascript - 有人可以解释这条线在做什么吗