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

标签 javascript ecmascript-6

首先是解释我的查询的代码

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,网上和我自己的经验进行了搜索。我很确定这是不可能的

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

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

最佳答案

我假设您希望跨静态和非静态方法访问原始数据。对于这种情况,您宁愿需要使用 Symbolconst

如何使用符号您可以在这里阅读:MDN Symbol

以及您修改的示例:using Symbolusing the const keyword

关于javascript - 是否可以在 ES6 类的静态方法中访问变量和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984971/

相关文章:

javascript - codepen 演示在本地浏览器中不起作用?

javascript - 如何应用密码验证并验证密码

javascript - ES6 类变量超出范围?

javascript - 使用变量 "default"

javascript - Angular Directive(指令)不会出现

javascript - 将鼠标悬停在图像的某个部分时,使它旁边出现一个 div

javascript - 如何在显示打开期间摆脱动画

javascript - 条件逻辑jsx react

javascript - JavaScript ES6 中的解构对象函数

javascript - 嵌套参数的 ES6 对象解构默认值