是否可以在ES6中的类的静态方法中访问变量和函数?

你好宇宙

首先,将解释我的查询的代码

class myClass {
    constructor() {
        this.myVariable = 10; 
    }

    myFunctionCalledFromStaticFunction() {
        console.log (`myFunctionCalledFromStaticFunction myvariable is ${this.myVariable}`);
    }

    static staticMyFunctionTwo() {
        console.log (`staticMyFunctionTwo myvariable is ${this.myVariable}`);
        this.myFunctionCalledFromStaticFunction();
    }

    static staticMyFunction() {
        console.log (`staticMyFunction myvariable is ${this.myVariable}`);
        myClass.staticMyFunctionTwo();
    }

    myFunctionTwo() {
        console.log (`myFunctionTwo myvariable is ${this.myVariable}`)
        myClass.staticMyFunction();
    }

    myFunction() {
        console.log (`myFunction myvariable is ${this.myVariable}`)
        this.myFunctionTwo();
    }
}

(function ($) {
    'use strict';
         const helloClass = new myClass();
         console.log (`main myvariable is ${helloClass.myVariable}`)
       helloClass.myFunction();  
       myClass.staticMyFunctionTwo();
}(jQuery));

而且,现在是一个codePen示例https://codepen.io/hellouniverse/pen/jYyYre

现在,我不得不放弃一个免责声明。我搜索了stackoverflow,在线和我自己的经验。我很确定这是不可能的

如果获取代码并运行它或签入代码笔,您会注意到myVariable在静态函数中未定义。另外,我不能从静态函数调用普通函数。

我的陈述正确吗?还是有可能或有解决方法?

安迪

我假设您希望通过静态和非静态方法都可以访问原始数据。在这种情况下,您宁愿使用Symbolconst

如何使用符号,您可以在此处阅读:MDN符号

和您修改的示例:使用Symbol使用const关键字

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章