根据定义类的方式不同,我给他起个名字:
1、赋值法:
var C = class {
...
};
2、定义法:
class C {
...
};
以下为我总结的类的嵌套引用方法(继承时类似):
import console;
// 1、类内构造赋值
class c1 {
ctor(){
// 在构造函数中,可以作为变量进行[赋值]:
c2 = class { // 或 var c2 = class {
aaa = 1;
}
};
c3 = c2();
}
c = c1();
console.log(c.c3.aaa)
// 2、类内构造定义
class c1 {
ctor(){
// 在构造函数中,可以直接[定义]:
class c2 {
aaa = 2;
}
};
c3 = c2();
}
c = c1();
console.log(c.c3.aaa)
// 3、类内成员赋值
class c1 {
// 作为成员变量时,只能进行[赋值]:
c2 = class {
aaa = 3;
};
// 不能[定义]:
/*
class c2 {
aaa = 123;
};
*/
c3 = this.c2();
}
c = c1();
console.log(c.c3.aaa)
// 4、类外定义
class c2 {
aaa = 4;
};
class c1 {
c3 = ..c2();
}
c = c1();
console.log(c.c3.aaa)
// 5、类外赋值(全局变量)
c2 = class {
aaa = 5;
};
c1 = class {
c3 = ..c2(); // c2作为外部全局变量,属于global名字空间,要加..
}
c = c1();
console.log(c.c3.aaa)
// 6、类外赋值(局部变量)
var c2 = class {
aaa = 6;
};
var c1 = class {
c3 = c2(); // c2作为外部局部变量,是和c1在同一个名字空间,不需要加..
}
c = c1();
console.log(c.c3.aaa)
console.pause(true);
运行结果: