稍微紀錄一下在 nodejs 裡面 module.exports 和 require
以及在 ECMA6 的 export 和 import 的使用方式
nodejs
首先先在 a.js 裡面 export 出一個 object 裡面包含一個 click function
然後再 b.js 裡面用 require a.js,這時候會有兩種使用方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   |  module.exports = {     click: () => {         console.log('Hi')     } }
 
 
  const a = require('./a.js') a.click()
 
 
  const {click} = require('./a.js') click()
 
 
  | 
 
另外一種使用方式也可以達到同樣效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   |  module.exports = () => {          return {         click: () => {             console.log('Hi')         }     } }
 
 
  const a = require('./a.js')() a.click()
 
 
  const {click} = require('./a.js')() click()
 
 
  | 
 
接下來就用不同種例子,看看使用方式
1 2 3 4 5 6 7
   |  module.exports = [1, 2, 3]
 
  const a = require('./a.js') console.log(a)
 
 
  | 
 
1 2 3 4 5 6 7 8 9
   |  module.exports = {     name: 'Hi' }
 
  const a = require('./a.js') console.log(a.name);
 
 
  | 
 
ECMA6
我把上面的例子轉換成 ECMA6 import 和 export 的方式
但是有些地方會有些許不同
1 2 3 4 5 6 7 8 9 10 11
   |  export default {     click: () => {         console.log('Hi')     } }
 
  import a from './a.js' a.click()
 
 
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12
   |  const click = () => {     console.log('Hi') } export {     click }
 
  import {click} from './a.js' click()
 
 
  | 
 
也可以搭配 as 和 * 去做 import (無法跟 export default 做搭配)
1 2 3 4 5 6 7 8 9 10 11 12
   |  const click = () => {     console.log('Hi') } export {     click }
 
  import * as a from './a.js' a.click()
 
 
  | 
 
接下來就用不同種例子,看看使用方式
1 2 3 4 5 6 7
   |  export default [1, 2, 3]
 
  import a from './a.js' console.log(a);
 
 
  | 
 
1 2 3 4 5 6 7 8 9 10
   |  const a = [1, 2, 3] export {     a }
 
  import {a} from './a.js' console.log(a);
 
 
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   |  export default {     name: 'hi' }
  const a = {     name: 'hi' } export default a
 
  import a from './a.js' console.log(a.name);
 
 
  |