JavaScript模块基本上是包含在给定程序中的库。它们用于将两个JavaScript程序连接在一起, 以调用在一个程序中编写的函数, 而无需在另一个程序中编写函数本身。
导入库:
这意味着在程序中包含一个库, 以便使用该库中定义的功能。为此, 请使用"要求"功能, 在其中传递库名称及其相对路径。
例子:
假设在文件名为library.js的同一文件夹中创建了一个库, 然后使用require函数包含该文件:
const lib = require('./library')
它将返回对该库的引用。现在, 如果库中定义了区域函数, 则将其用作lib.area()。
导出库:JavaScript中有一个特殊的对象, 称为module.exports。当某些程序包含或导入该模块(程序)时, 将暴露该对象。因此, 所有那些需要公开或需要可用的功能, 以便可以在module.exports中定义的其他文件中使用。
范例:编写两个不同的程序, 然后查看如何在给定程序中使用库(模块)中定义的函数。在库中定义两个简单函数, 以计算和打印矩形的面积和周长(如果提供了长度和宽度)。然后导出功能, 以便其他程序可以在需要时导入它们并可以使用它们。
导出模块示例:library.js
<script>
// Area function
let area = function (length, breadth) {
let a = length * breadth;
console.log( 'Area of the rectangle is ' + a + ' square unit' );
}
// Perimeter function
let perimeter = function (length, breadth) {
let p = 2 * (length + breadth);
console.log( 'Perimeter of the rectangle is ' + p + ' unit' );
}
// Making all functions available in this
// module to exports that we have made
// so that we can import this module and
// use these functions whenever we want.
module.exports = {
area, perimeter
}
</script>
导入模块示例
要导入任何模块, 请使用名为" Require"的函数, 该函数将获取模块名称, 如果用户定义了模块, 则将其相对路径作为参数并返回其引用。
script.js包含上述JavaScript模块(library.js)。
Script.js
<script>
// Importing the module library containing
// area and perimeter functions.
// " ./ " is used if both the files are in the same folder.
const lib = require( './library' );
let length = 10;
let breadth = 5;
// Calling the functions
// defined in the lib module
lib.area(length, breadth);
lib.perimeter(length, breadth);
</script>
输出如下:
Area of the rectangle is 50 square unit
Perimeter of the rectangle is 30 unit
注意:要运行脚本, 首先将两个文件放在同一个文件夹中, 然后在终端中使用NodeJs解释器运行script.js。