如何在JavaScript中组织继承,以便能够将类放在不同的文件中

how to organize inheritance in JavaScript in order to be able to place classes in different files?

本文关键字:文件 JavaScript 继承      更新时间:2023-09-26

问题是将类放在单独的文件中很方便,但我习惯了JavaScript中唯一的继承组织方式(类似于下一个示例):

if (typeof app === 'undefined') {
    app = {};
}
app.Base = function() {}
app.Child = function() {}
app.Child.prototype = new app.Base();

,因为我不能在不同的文件之间分割基类和子类,因为在调用new app.Base();时,app.Base可能还没有定义。所以我不得不把所有链放到一个大文件里。

我不想为文件包含的顺序而烦恼,因为例如,当使用Karma-runner检查配置文件中文件包含的顺序时,如果可能的话,它不是很方便。

有谁能给点建议吗?提前感谢

使用Require.js之类的东西。它允许你把你的文件分成逻辑组,并维护一个很好的依赖树。

在这种情况下,你可以像

那样分割
// This is base.js
define([], function(){
  var Base = function() {};
  return Base;
});
// This is child.js
define(['base'], function(Base) {
  var Child = function() {};
  Child.prototype = new Base();
  return Child;
});
// This is app.js
require( ['child'], function( Child ) {
  var myChild = new Child();
});

我真的建议你看看require.js。

如果你在Node.js世界中,你可以简单地使用require和module。导出以简单地维护您的依赖项。

ECMAScript 6为模块定义了一个新的标准,这应该会使这一切变得更容易,虽然这需要一段时间,但直到它以一种相同的可用方式在每个浏览器中实现