[英]Javascript Class Variables Access
问题在这里。 我有这个代码
class Primary {
constructor() {
const methods = Object.getOwnPropertyNames(Object.getPrototypeOf(this));
console.log(methods);
}
}
class Secondary extends Primary {
myVar = '';
test() {
//Do Nothing
}
}
如果我启动辅助 class,它将打印 ['constructor', 'test'],但我不能对辅助 class 中的变量执行相同操作。 有其他人知道如何或是否可能吗?
Class 字段声明只是用于在构造函数中为实例分配属性的语法糖:
class Secondary extends Primary {
myVar = '';
是
class Secondary extends Primary {
constructor() {
super();
this.myVar = '';
}
该属性在实例上,而不是在原型上-并且超级调用发生在分配属性之前(无法更改它;在构造函数中访问实例之前需要超级调用)。
我将向检查所需变量的超类添加一个不同的方法,可以在实例完全初始化后调用:
class Primary { checkProps() { const methods = Object.getOwnPropertyNames(Object.getPrototypeOf(this)); const instanceProps = Object.getOwnPropertyNames(this); console.log(methods); console.log(instanceProps); } } class Secondary extends Primary { myVar = ''; test() { //Do Nothing } } const s = new Secondary(); s.checkProps();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.