JavaScript中类继承与模块化结合需用extends实现继承、export/import组织模块:父类单独文件导出,子类导入后继承并调用super(),多子类时推荐命名导出避免冲突。

JavaScript 中用 class 语法实现模块间继承,核心是通过 extends 关键字让子类继承父类,并配合 export / import 在不同模块文件中组织代码。这不是“模块继承”,而是“类继承 + 模块化组织”。
把父类定义在独立模块中并导出
父类应封装在单独的文件里(如 Animal.js),用 export default 或命名导出暴露出去:
// Animal.js
export default class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} makes a sound.`);
}
}
在另一个模块中导入并继承
子类所在模块(如 Dog.js)先导入父类,再用 extends 继承,注意必须在子类构造函数中调用 super():
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
// Dog.js
import Animal from './Animal.js';
export default class Dog extends Animal {
constructor(name, breed) {
super(name); // 必须调用,初始化父类 this
this.breed = breed;
}
speak() {
console.log(`${this.name} barks!`);
}
}
在使用处导入并实例化子类
最终在入口或调用模块(如 main.js)中导入子类,它已自动拥有父类方法和属性:
立即学习“Java免费学习笔记(深入)”;
// main.js
import Dog from './Dog.js';
const dog = new Dog('Buddy', 'Golden Retriever');
dog.speak(); // "Buddy barks!"
console.log(dog.name); // "Buddy"(继承自 Animal)
多个子类共用一个父类模块的常见写法
若一个父类被多个子类继承(如 Cat、Bird),推荐用命名导出,避免默认导出冲突:
- 父模块
Animals.js:用export class Animal { ... } - 子模块分别
import { Animal } from './Animals.js' - 支持按需导入,也方便类型工具识别

















