首页 > 解决方案 > 如何从父类解析的数据中访问属性?

问题描述

我创建了一个解析 json 文件的基类:

const fs = require("fs");

class DataRepository {
  constructor() {
    this.filename = "cales_data.json";
    try {
      fs.accessSync(this.filename);
    } catch (error) {
      console.error("data does not exist");
    }
  }

  async getAll() {
    // Open the file called this.filename
    return JSON.parse(
      await fs.promises.readFile(this.filename, {
        encoding: "utf-8",
      })
    );
  }

  async getOneBy(filters) {
    const records = await this.getAll();

    for (let record of records) {
      let found = true;

      for (let key in filters) {
        if (record[key] !== filters[key]) {
          found = false;
        }
      }

      if (found) {
        return record;
      }
    }
  }
}

module.exports = DataRepository;

在这一点上,我不在乎它的方法。我只想能够访问的内容this.filename = "cales_data.json";

可能是这样的:

const DataRepository = require("./repositories/data");

class Address extends DataRepository {
  constructor() {
    super();
    this.Address = DataRepository.Address;
    this.Latitude = DataRepository.Latitude;
    this.Longitude = DataRepository.Longitude;
  }
}

module.exports = Address;

但显然以上给了我未定义的。是否可以通过这种方式访问​​该基类中该 JSON 文件中的这些属性?如果是这样,怎么做?

标签: javascript

解决方案


简单的回答:没有。除了类内存堆栈上的值之外,“这个”永远不会产生任何结果。你必须处理这个不同的:-)


推荐阅读