模块提供了一种组织代码和将应用程序划分为更小部分的方法。例如,个人电脑可以分为键盘、鼠标和显示器“模块”,这些模块可以单独连接。
理想情况下,在模块化设计中,我们希望我们的模块能够独立地“可重用”PS/2键盘可以连接到任何具有PS/2端口的机器,因为它不是为单个机器定制的。同样,在软件中,您的公司或组织可能有多个需要身份验证的应用程序。与为每个应用程序重复编写登录和身份验证代码不同,您可能希望通过单个模块公开身份验证功能。
JS++中的模块可以使用’module’关键字声明。
创建一个名为“Calculator”的文件夹。在名为“Calculator”的文件夹中创建一个文件。并添加以下代码:
module Calculator { int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } }
然而,我们不能只在同一个文件中执行模块代码。JS++鼓励“模块化设计”,并要求模块与主程序逻辑分离。
主文件
“主文件”是应用程序入口点。换句话说,您告诉JS++编译器,“我的应用程序从这里开始。”JS++只允许一个应用程序入口点。让我们从一个例子开始;创建一个名为“main”的文件。jspp将使用以下代码导入我们的“计算器”模块:
import Calculator; external $; int result = Calculator.add(1, 1); $(".display-result").text(result);
这里发生了很多事情,让我们把它分解一下。在前面的章节中,我们使用’external’关键字导入了JavaScript库。我们仍然在上面的代码中使用’external’关键字导入jQuery(一个JavaScript库)。然而,要导入JS++库(用’module’关键字定义),我们需要使用’import’关键字。这是一个重要的区别,因为它允许我们隔离不安全的JavaScript代码。
“import”语句需要完整的模块名。在我们的简单示例中,完整的模块名只是“Calculator”。JS++知道该怎么做。
接下来,我们使用“计算器”模块中定义的方法之一:“添加”方法。我们只需添加1+1,并将结果存储在“result”变量中。然后,我们使用jQuery显示计算结果。
让我们创建一个计算器。用于显示结果的html文件:
<!DOCTYPE html> <head> <title>Calculator</title> </head> <body> <div class="display-result"></div> <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script> <script src="app.jspp.js"></script> </body> </html>
编写 二者都 计算器。jspp和main。jspp文件。对于Windows,选择这两个文件,右键单击其中一个文件,然后选择“用JS++编译”就很容易了。对于Mac和Linux,请使用以下命令:
js++ Calculator.jspp main.jspp
一个应用程序。jspp。js文件应该由js++生成。
输入文件的顺序并不重要。JS++将自动解析文件需要编译的顺序。
开放索引。html,您应该会看到结果:2。
嵌套模块和部分限定
在JS++中,我们可以声明嵌套模块来进一步组织代码。有两种方法可以做到这一点:
module MyApplication { module Calculator { // ... } }
或者:
module MyApplication.Calculator { // ... }
我们换个计算器吧。jspp使“计算器”模块成为“MyApplication”的专用模块,以组织我们的代码:
module MyApplication.Calculator { int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } }
既然我们已经改变了我们的模块结构,我们必须改变我们的主要功能。jspp导入语句来反映这一点。不过,我们将添加一个转折点,以节省一些打字时间:
import MyApplication.Calculator; external $; int result = add(1, 1); $(".display-result").text(result);
编译文件并打开索引。网页浏览器中的html。你应该注意到同样的结果:2。
你注意到了吗?
而不是调用计算器。add,我们只是通过“add”调用加法函数。以下是调用“添加”函数的正确方法:
add(1, 1); Calculator.add(1, 1); MyApplication.Calculator.add(1, 1);
前两行被称为“部分限定”第三行也是最后一行被称为“完全资格”完全限定名是“完整路径”,部分限定名是“相对路径”
JS++允许您通过部分限定名使用此类相对路径,以保持代码简洁。然而,你越是限定一个名字,你的代码就越容易阅读和遵循。代码样式的选择取决于您。