在 js 中需要引用別支檔案的內容,通常會使用 node 的機制,或是使用 es6 的機制,這兩種常常搞混,所以特別紀錄一下用法
參考資料來源:
- MDN web docs:export
- 阮一峰 - ECMAScript6 入門 - 編程風格
- node.js 中 module.exports 及 exports 的差異及區別
ES6 範例 1
1 2 3 4 5 6
| export const numbers = [1, 2, 3];
import { numbers } from "./data.js"; console.log(numbers);
|
ES6 範例 2
1 2 3 4 5 6 7
| const numbers = [1, 2, 3]; export default numbers;
import numbers from "./data.js"; console.log(numbers);
|
node 範例 1
1 2 3 4 5 6 7 8 9
| const numbers = [1, 2, 3]; module.exports = numbers;
module.exports = [1, 2, 3];
var numbers = require("./data.js"); console.log(numbers);
|
node 範例 2
1 2 3 4 5 6
| exports.char = ["A", "B", "C"];
var char = require("./data.js"); console.log(char);
|
node 範例 3
如果有兩個以上的匯出….混用,結果是吃 exports
1 2 3 4 5 6 7
| module.exports = [1, 2, 3]; exports.char = ["A", "B", "C"];
var NaNiKoLeh = require("./data.js"); console.log(NaNiKoLeh);
|
使用module.exports
,最終的結果是吃最後一個的
1 2 3 4 5 6 7
| module.exports = [1, 2, 3]; module.exports = ["A", "B", "C"];
var NaNiKoLeh = require("./data.js"); console.log(NaNiKoLeh);
|
這個就比較有意思了,因為用 export.char 會輸出一個物件,所以可以匯出多個資料
1 2 3 4 5 6 7
| exports.num = [1, 2, 3]; exports.char = ["A", "B", "C"];
var NaNiKoLeh = require("./data.js"); console.log(NaNiKoLeh);
|