nodeJS
採用commonJs
規範,當前文件是一個模塊(module)
私有域,經過exports
屬性導出,經過require()
引入模塊,經過.xx去獲取值,從而瞭解到加載某個模塊,實際上是加載該模塊的exports
屬性exports
是module.exports
的別名,不要在同一個文件內同時使用兩個,不然只能獲取到module.exports
的值// example.js module.exports.a = '111'; module.exports.fun= function() { } // 或者寫成對象形式 module.exports = { a : '111', fun: function(){} }
let test = require('./example.js') console.log(test.a) console.log(test.fun);
export
和import
。export
命令用於規定模塊的對外接口,import
命令用於輸入其餘模塊提供的功能。export
命令規定的是對外的接口,必須與模塊內部的變量創建一一對應關係。意思是導出的不是一個具體的數值,而是一個對象{a: 1, b: function(){}}
import
命令接受一對大括號,裏面指定要從其餘模塊導入的變量名。大括號裏面的變量名,必須與被導入模塊(profile.js
)對外接口的名稱相同。所以,import {}
中的變量名是export {}
的key
值import
命令輸入的變量都是隻讀的,由於它的本質是輸入接口。所以,模塊導出的值,只能獲取,不能夠修改//example2.js // 1. 直接導出某個變量或函數 export const a = 1; export function fun() { } // 2. 先定義變量或者函數,再進行導出 const a = 1; export {a}; function fun() { } export {fun}; // 3. 加別名進行導出 const a = 1; export {a as b} // b是a的別名 // 4. export default 注意,一個文件只能有一個default,這表明是模塊的總體輸出
// 1. 常規導入 import {a, fun} from 'example2.js' // 2. 別名導入 import {a as b} from ... // 3. *導入整個模塊 import * as b from ... // 4. 前三種是module.export,此處是export default import b from ... console.log(a) console.log(fun())
補充:export
與import
可複合書寫,若是在一個模塊之中,先輸入後輸出,不作任何操做export {} from ''
node