ES6:从内部本地函数访问class'es'this'

时间:2018-05-03 01:08:32

标签: javascript ecmascript-6 es6-class

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

class Example(){

    construtor(){

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

        this.message = functionWhichRequiredInConstructorOnly();
    }

    methodWhichRequredAnywhere(){
        return 'test';
    }
}

关于其他问题的答案中关闭的解释太多,但我仍然没有找到解决上述问题的简单解决方案。

注意

据我所知,上面的代码架构与OOP相矛盾。我为什么用它?

  • 我想,在构造函数执行后将使用functionWhichRequiredInConstructorOnly()methodWhichRequredAnywhere会成为吗?
  • 我需要在真正的课堂上分组声明。所以functionWhichRequiredInConstructorOnly()直接在它使用的一些声明之下。

1 个答案:

答案 0 :(得分:2)

您需要调用该函数并将其fetchTracks值显式设置为您想要的值。您可以使用this

执行此操作
.call

或者将功能定义为注释中建议的箭头功能。箭头函数没有自己的this.message = functionWhichRequiredInConstructorOnly.call(this); 绑定,但就像任何其他变量一样在词法上解决它。

相关: