📜  JS++ |模块

📅  最后修改于: 2022-05-13 01:55:33.378000             🧑  作者: Mango

JS++ |模块

模块提供了一种组织代码并将应用程序划分为较小部分的方法。例如,个人电脑可以分为键盘、鼠标和显示器“模块”,可以单独连接。

理想情况下,在模块化设计中,我们希望我们的模块能够独立“重用”。 PS/2 键盘可以连接到任何具有 PS/2 端口的机器,因为它不是为单个机器量身定制的。同样,在软件中,您的公司或组织可能有多个需要身份验证的应用程序。您可能希望通过单个模块公开身份验证功能,而不是为每个单独的应用程序重复重写登录和身份验证代码。

JS++ 中的模块可以使用 'module' 关键字声明。

创建一个名为“计算器”的文件夹。在名为“Calculator.jspp”的文件夹中创建一个文件并添加以下代码:

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' 语句需要完整的模块名称。在我们的简单示例中,完整的模块名称只是“计算器”。 JS++ 知道从那里做什么。

接下来,我们使用“计算器”模块中定义的方法之一:“添加”方法。我们只需添加 1 + 1 并将结果存储在“结果”变量中。然后我们使用 jQuery 来显示我们的计算结果。

让我们创建一个calculator.html 文件来显示我们的结果:



    Calculator


编译 Calculator.jsppmain.jspp 文件。对于 Windows,这就像选择两个文件一样简单,右键单击其中一个文件,然后选择“使用 JS++ 编译”。对于 Mac 和 Linux,使用以下命令:

js++ Calculator.jspp main.jspp

'app.jspp.js' 文件应该由 JS++ 生成。

输入文件的顺序无关紧要。 JS++会自动解析文件需要编译的顺序。

打开 index.html,你应该会看到结果: 2.

嵌套模块和部分限定

在 JS++ 中,我们可以声明嵌套模块来进一步组织我们的代码。有两种方法可以做到这一点:

module MyApplication
{
    module Calculator
    {
        // ...
    }
}

或者:

module MyApplication.Calculator
{
    // ...
}

让我们更改 Calculator.jspp 以使“Calculator”模块成为“MyApplication”专有的来组织我们的代码:

module MyApplication.Calculator
{
    int add(int a, int b) {
        return a + b;
    }
    int subtract(int a, int b) {
        return a - b;
    }
}

现在我们已经改变了我们的模块结构,我们必须改变我们的 main.jspp 导入语句来反映这一点。但是,我们将添加一个转折来节省一些输入:

import MyApplication.Calculator; 
external $; 
 
int result = add(1, 1); 
$(".display-result").text(result);

编译文件并在 Web 浏览器中打开 index.html。您应该注意到相同的结果:2。

你注意到增加的扭曲了吗?

我们没有调用 Calculator.add,而是通过“add”简单地调用了加法函数。以下都是调用'add'函数的正确方法:

add(1, 1); 
Calculator.add(1, 1); 
MyApplication.Calculator.add(1, 1);

前两行称为“部分限定”。第三行也是最后一行被称为“完全资格”。完全限定名称是“完整路径”,部分限定名称是“相对路径”。

JS++ 允许您通过部分限定名称使用此类相对路径,以保持代码简洁。但是,您对名称的限定越多,您的代码就越容易阅读和遵循。代码样式的选择取决于您。