昨天我們講解了如何 import 和 export 一個 modules,這時候你心中應該會有一個疑問,那如果假設這個 counter 檔案裡面有不同的東西,而我們也想一起使用他們呢?像下面的例子,我們又再多加了兩個變數adder
和pi
,並且為了不要跟昨天混淆,將檔名改成 stuff.js:
let counter = function(arr){
return `There are ${arr.length} elements in this array` ;
}
let adder = function(a, b){
return `The sum of 2 numbers are ${a + b}`
}
let pi = 3.14
事實上,這個module.exports
其實就是一個空的物件,我們可以用新增屬性的方式把這個 module 裡的變數一個一個加進去:
let counter = function(arr){
return `There are ${arr.length} elements in this array` ;
}
let adder = function(a, b){
return `The sum of 2 numbers are ${a + b}`
}
let pi = 3.14
module.exports.counter = counter
module.exports.adder = adder
module.exports.pi = pi
然後在 app.js import出來使用:
const stuff = require('./stuff')
console.log(stuff.counter([1,2,3,4,5])) // There are 6 elements in this array
console.log(stuff.adder(5,8)) // The sum of 2 numbers are 13
console.log(stuff.adder(stuff.pi, 5)) // The sum of 2 numbers are 8.14
除此之外,我們還有其他兩種 export 方法:
法1:賦值直接加入 module.exports 的屬性中:
module.exports.counter = function(arr){
return `There are ${arr.length} elements in this array` ;
}
module.exports.adder = function(a, b){
return `The sum of 2 numbers are ${a + b}`
}
module.exports.pi = 3.14
法2:使用物件
let counter = function(arr){
return `There are ${arr.length} elements in this array` ;
}
let adder = function(a, b){
return `The sum of 2 numbers are ${a + b}`
}
let pi = 3.14
module.exports = {
counter: counter,
adder: adder,
pi: pi
}
之後一樣是用 const stuff = require('./stuff')
import
透過 stuff.<屬性名稱>
的方式去取用
今天的 Module Patterns 就到此為止啦!
我們明天見
ㄅㄅ