首先是解释我的查询的代码
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 在静态函数中未定义。另外,我不能从静态函数调用普通函数。
我的陈述是否正确?还是有可能或有解决方法?
最佳答案
我假设您希望跨静态和非静态方法访问原始数据。对于这种情况,您宁愿需要使用 Symbol
或 const
。
如何使用符号您可以在这里阅读:MDN Symbol
以及您修改的示例:using Symbol
和 using the const
keyword
关于javascript - 是否可以在 ES6 类的静态方法中访问变量和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47984971/