我如何以模块化的方式使用JavaScript,类似于Java类

How can I use JavaScript in a modular way, similar to Java classes?

本文关键字:JavaScript 类似于 Java 方式使 模块化      更新时间:2023-09-26

我正在创建一款JavaScript游戏,之前我总是在一个JavaScript文件中创建整个游戏。我希望能够通过将代码分成模块来减少耦合。是否有可能在一个文件中编写JavaScript,可以从另一个文件访问,使用某种类型的包含语句?

<script type="text/javascript" src="assets/scripts/asset_manager.js"></script>
<script type="text/javascript" src="assets/scripts/game.js"></script>

我希望javascript文件以类似于java类的方式运行,例如在game.js文件中编写this.extends('asset_manager') .

编辑:

看起来RequireJS和CommonJS都是不错的选择,你发现两者都有缺点或优点吗?

如果你想要一些模块化,你可以简单的模块模式,或者一些辅助库,如RequireJS或其他CommonJS模块的实现。

看看异步模块定义的CommonJS。这是nodejs的require(),支持web。

有许多实现:http://www.commonjs.org/impl/

有这样的框架。

尝试使用UIZE

假设在文件asset_manager中有如下内容

function AssetManager(){
    // some code here
}

现在在game。js中,要扩展这个类你必须这样做

// define the new class
Game.prototype = new AssetManager()
function Game(){
    // Call super constructor.
    AssetManager.apply( this, arguments );
}

"prototype"是一个预构建对象,它简化了向对象的所有实例添加自定义属性/方法的过程