每一个js文件,天生都有一个 属性 module 存储相关的信息内容
console.log(module);
// 显示内容
Module {
id: '.',
// 当前文件的路径
path: 'F:自定义模块',
// 导出的内容
exports: {},
parent: null,
// 当前文件的名称
filename: 'F:自定义模块\\a.js',
// 是否有导入 加载依赖其他文件
loaded: false,
// 是否有其他文件导入 依赖当前文件
children: [],
paths: [
'F: 自定义模块\\node_modules',
]
}
当前模块文件
通过 module.exports = {} 设定导出的内容
只有导出的数据,才能被其他文件加载使用
其他 js文件
通过 require(路径) 来导入加载依赖外部js文件
将导入的数据,存储在变量中,数据类型是一个对象
必须要注意:
其他加载的文件中,如果有输出内容,也会显示在执行结果中
但是这个内容是直接输出的,是不能调用使用的
模块化实例
第一个JS文件-a.js
let int = 100;
let str = '北京';
const obj = {name:'张三',age:18};
const arr = [1,2,3,4,5];
function fun(a){
return a;
}
// 通过 module.exports 添加 导出内容
// 导出内容是以对象的形式,导出的
// 当前文件中的所有的变量,都可以导出
// 输出的内容,只能显示不能使用
console.log( 12345 );
module.exports = {
// 导出一个数据,键名的是integer 键值是 变量int 中存储的数据 100
// obj没有导出所以不能使用
integer:int,
string:str,
array:arr,
function:fun,
}
第二个JS文件-b.js
// 通过 require 来 导入记载 a.js 中 导出的数据
// 从在 result 中 数据类型是一个对象
const result = require('./a.js');
console.log(result);
// {
// integer: 100,
// string: '北京',
// array: [ 1, 2, 3, 4, 5 ],
// function: [Function: fun]
// }
// 将a中的值在b中使用
const { string, integer ,array} = require('./a.js');
console.log(array); //[ 1, 2, 3, 4, 5 ]
array[0]=0;
console.log(array); //[ 0, 2, 3, 4, 5 ]
console.log(result.array); //[ 0, 2, 3, 4, 5 ]
// a.js中的值也会进行改变
// 使用a.js中的方法
console.log(result.function('aaaa')); //aaaa
let a = string;
module.exports = {
number:a,
}
第三个JS文件-demo.js
// 在 demo.js 中 导入 b.js
// 我们不需要管 b.js 文件对谁有依赖
// 导入b.js 时 b.js 会自动加载导入 a.js
// demo.js 中 只需要导入 b.js 就可以了
const res = require('./b.js');
console.log(res); //{ number: '北京' }
Comments | NOTHING