一、module.exports javascript
module變量表明當前模塊。這個變量是一個對象,module對象會建立一個叫exports的屬性,這個屬性的默認值是一個空的對象:java
module.exports = {};
例子:app.jses6
module.exports.Name="我是電腦"; module.exports.Say=function(){ console.log("我能夠幹任何事情"); } //上邊這段代碼就至關於一個對象 { "Name":" 我是電腦", "Say" :function(){ console.log("我能夠幹任何事情"); } }
require方法用於加載模塊。app
var req=require("./app.js"); req.Name //這個值是 "我是電腦" req.Say() //這個是直接調用Say方法,打印出來 "我能夠幹任何事情"
Node爲每一個模塊提供一個exports變量,指向module.exports。能夠通俗的理解爲:函數
var exports = module.exports; //兩個是相等的關係,但又不是絕對至關的關係 例如: 1.module.exports能夠直接導出一個匿名函數或者一個值 module.exports=function(){ var a="Hello World" return a; } 可是exports是不能夠的,由於這樣等於切斷了exports與module.exports的聯繫。 exports=function(){ //這樣寫法是錯誤的 var a="Hello World" //這樣寫法是錯誤的 return a; //這樣寫法是錯誤的 } //這樣寫法是錯誤的
三、export和export default的區別ui
export是es6引出的語法,用於導出模塊中的變量,對象,函數,類。對應的導入關鍵字是import。spa
兩者的區別有如下幾點:code
1.export寫法
//./aap.js var name="我是電腦"; var say=function(){ console.log("我能夠幹不少事"); }
export {name,say};
//也能夠直接一個一個的export可是必須得有名字
export const a=1;
export function data(){
return data;
}
//其餘頁面引入時必須這樣
import {name,say} from "./app.js"
2.export default
//app.js
//能夠沒有函數名字
export default function(){
return data;
}
//這裏export不能這樣導出
export default const a=12;
//應該這樣導出
const a=12;
export default a
//其餘頁面引入時必須這樣
import data from "./app.js"
總結:能夠看到用,語句不須要使用大括號;用,對應的語句須要使用大括號,一個模塊只能有一個默認輸出,因此只能使用一次。export defaultimportexportimportexport default