繁体   English   中英

Javascript Class 变量访问

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM