gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:43:01 24 4
gpt4 key购买 nike

我什么时候做 <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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com