gpt4 book ai didi

javascript - 如何在辅助函数中使用箭头函数代替 'bind'

转载 作者:行者123 更新时间:2023-11-28 12:16:42 25 4
gpt4 key购买 nike

我有一个类,它导入一个辅助函数

import {foo} from '../helper/foo';
...
foo(someArg, this.retFunc.bind(this));

效果很好 - 我将辅助函数称为“foo”,向其传递一个参数“someArg”,然后它使用“this”的正确上下文调用 retFunc。

如何用箭头函数替换上面的内容?当我执行以下操作时,retFunc 永远不会被调用:

foo(someArg, () => this.retFunc);

最佳答案

有两个问题

foo(someArg, () => this.retFunc)

首先,回调函数 (() => this.retFunc) 不会调用该函数,只会在调用回调时返回一个函数,这在您的示例中可能没有帮助.

但是

foo(someArg, () => this.retFunc())

还有另一个问题,即传递给回调函数的任何参数都将被忽略,并且不会传递给 this.retFunc()。这可能是好事,也可能是坏事,具体取决于您期望 retFunc 需要什么参数。

由于您正在寻找 .bind(this) 的替代品,因此适当的替代品是使用 rest parameters将任何输入传递给您的函数:

foo(someArg, (...args) => this.retFunc(...args))

尽管如此,在此特定示例中尝试替换 bind 并不会保存任何内容:

foo(someArg, this.retFunc.bind(this))

关于javascript - 如何在辅助函数中使用箭头函数代替 'bind',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47949967/

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