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

Cha*_*e22 8 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;
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

多谢您的协助,

祝你有美好的一天

Dav*_*ile 10

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

公共类.js

class PublicClass {
.....
}

module.exports.PublicClass = PublicClass;
Run Code Online (Sandbox Code Playgroud)

代替

module.exports = PublicClass;
Run Code Online (Sandbox Code Playgroud)


lwd*_*he1 7

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


kig*_*iri 5

我认为您的要求至少有一个问题。

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

这是一个问题,您不能同时评估两个文件。我不会要求minimonstermonster.js

这可以解决您的问题。