“类扩展值#<object>不是构造函数或null”

时间:2018-04-16 10:14:28

标签: javascript es6-class

感谢您阅读我的帖子 我的代码出现了这个错误:“类扩展值#不是构造函数或null” 这是我的代码,我正在尝试导出/导入类。

monster.js:

const miniMonster = require("./minimonster.js");

class monster {
  constructor(options = { name }, health) {
    this.options = options;
    this.health = 100;
    this.heal = () => {
      return (this.health += 10);
    };
  }
}

let bigMonster = new monster("Godzilla");
console.log(bigMonster);

console.log(bigMonster.heal());

let mini = new miniMonster("Demon");
console.log(mini);
console.log(mini.heal());

module.exports = monster;

minimonster.js:

const monster = require("./monster.js");

class miniMonster extends monster {
  constructor(options) {
    super(options);
    this.health = 50;
    this.heal = () => {
      return (this.health += 5);
    };
  }
}

let miniM = new miniMonster("Jon");
console.log(miniM);

module.exports = miniMonster;

感谢您提供任何帮助,

度过美好的一天

4 个答案:

答案 0 :(得分:3)

我发现您的要求至少有一个问题。

  • monster.js第一行是const miniMonster = require("./minimonster.js");
  • minimonster.js第一行是const monster = require("./monster.js");

这是一个问题,您无法同时评估这两个文件。 我不需要minimonster

中的monster.js

这可能会解决您的问题。

答案 1 :(得分:2)

收到此错误消息是因为我做错了module.exports。 例如。

publicclass.js

class PublicClass {
.....
}

module.exports.PublicClass = PublicClass;

代替

module.exports = PublicClass;

答案 2 :(得分:0)

对我来说,我引入了循环依赖。

答案 3 :(得分:-1)

我按照下面的代码使用

import Base from "./base

并且现在可以正常工作