请考虑以下代码,由3个简单类组成,其中我尝试使用“common”类的静态类变量来初始化另外两个类的静态类变量(以确保它们都使用相同的值)。 我在项目设置中使用AMD作为模块系统。
这是第一堂课:
import TestClassCommon from "TestClassCommon";
class TestClass1
{
static ParameterNames =
{
CommonName: TestClassCommon.ParameterNames.CommonName,
TestClass1Name: "TestClass1Name"
}
SomeAction()
{
console.log("TestClass1 action");
}
}
export default TestClass1;
这是第二个:
import TestClassCommon from "TestClassCommon";
class TestClass2
{
static ParameterNames =
{
CommonName: TestClassCommon.ParameterNames.CommonName,
TestClass2Name: "TestClass2Name"
}
SomeAction()
{
console.log("TestClass2 action");
}
}
export default TestClass2;
和“共同”的:
import TestClass1 from "TestClass1";
import TestClass2 from "TestClass2";
class TestClassCommon
{
static ParameterNames =
{
CommonName: "CommonName"
}
static DoSomething()
{
console.log("Common name = " + this.ParameterNames.CommonName);
console.log("TestClass1 name = " + TestClass1.ParameterNames.TestClass1Name);
console.log("TestClass2 name = " + TestClass2.ParameterNames.TestClass2Name);
}
}
export default TestClassCommon;
当我然后使用这样的2个类:
import TestClass1 from "TestClass1";
import TestClass2 from "TestClass2";
let tc1 = new TestClass1();
let tc2 = new TestClass2();
我在TestClass2中遇到异常:
第11行第5行的未处理异常 http://localhost:54375/scripts/TestClass2.js
0x800a138f - JavaScript运行时错误:无法获取属性 未定义或空引用的“ParameterNames”
前段时间我遇到了类似的问题,但是在其他人的一些建议转而使用上述导入方式,定义类并导出类,这就解决了问题。
但现在我又遇到了这个问题。 谁能让这个简单的例子起作用? 谢谢!