gpt4 book ai didi

javascript - ES6 : Accessing to class'es 'this' from inner local function

转载 作者:行者123 更新时间:2023-12-01 02:05:24 25 4
gpt4 key购买 nike

在下面的示例中,我需要访问 functionWhichRequiredInConstructorOnly() 内的 this.methodWhichRequredAnywhere()

class Example(){

construtor(){

function functionWhichRequiredInConstructorOnly(){
// warning: invalid code
return this.methodWhichRequredAnywhere + ' complete';
}

this.message = functionWhichRequiredInConstructorOnly();
}

methodWhichRequredAnywhere(){
return 'test';
}
}

在另一个问题的答案中对闭包的解释太多,但我仍然没有找到解决上述问题的简单解决方案。

注意

据我了解,上述代码架构与 OOP 相矛盾。我为什么使用它?

  • 我想,在执行构造函数后将使用functionWhichRequiredInConstructorOnly()methodWhichRequredAnywhere 会是吗?
  • 我需要在我的真实类(class)中对声明进行分组。因此,functionWhichRequiredInConstructorOnly()直接位于它使用的一些声明的下方。

最佳答案

您需要调用该函数并将其 this 值显式设置为您想要的值。您可以使用 .call 来做到这一点:

this.message = functionWhichRequiredInConstructorOnly.call(this);

或者按照注释中的建议将函数定义为箭头函数。箭头函数没有自己的 this 绑定(bind),但像任何其他变量一样按词法解析它。

相关:

关于javascript - ES6 : Accessing to class'es 'this' from inner local function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145579/

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