Javascript &引用;类扩展值#<;对象>;不是构造函数或空";
谢谢你阅读我的帖子 我在代码中遇到了这样的错误:“类扩展值#不是构造函数或null” 这是我的代码,我正在尝试导出/导入类 monster.js:Javascript &引用;类扩展值#<;对象>;不是构造函数或空";,javascript,es6-class,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 =
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;
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;
minimonster.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;
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;
谢谢你的帮助
祝你有愉快的一天我发现你的要求至少有一个问题
第一行是monster.js
const miniMonster=require(“./miniMonster.js”)代码>
第一行是minimonster.js
const monster=require(“./monster.js”)代码>
monster.js
这可能会解决您的问题。当我收到此错误消息时,这是因为我完成了
模块。导出错误。
例如
publicclass.js
class PublicClass {
.....
}
module.exports.PublicClass = PublicClass;
而不是
module.exports = PublicClass;
我按照下面的行使用
import Base from "./base
现在工作正常了对于我来说,我引入了循环依赖项。正确的代码:
//Export from monster.js (but don't import minimonster.js)
class monster {
.....
}
let bigMonster = new monster("Godzilla");
module.exports = monster;
//Import in minimonster.js
const monster = require("./monster.js");
class miniMonster extends monster {
.....
}
let miniM = new miniMonster("Jon");
module.exports = miniMonster;
当模块A依赖于模块B中的某个内容而模块B依赖于模块A中的某个内容时,就会发生循环依赖。这意味着要编译模块A,必须先编译模块B,但不能这样做,因为B要求A已经编译
因此,为了避免循环依赖,我们不应该在同一个模块(monster.js)中导入导出模块(monster.js)的模块(minimonster.js)。请您控制monster的内容。我建议您重构代码以消除循环依赖,因为它可能会变得混乱。您可以添加第三个类来管理这两个文件。这两个文件不是互相包含吗?一个类可能在某一点上没有定义,我甚至没有考虑查看导出。这个给我修好了。谢谢