exports和module.exports

sicily621發表於2018-06-01

共性

作用都是將檔案模組的方法屬性暴露給require返回的物件進行呼叫。

區別

包含關係

exports module.exports

也就是說module.exports可以替代exports,反之則不行。

實際上,exports是指向module.exports的引用,module.exports的初始值是一個空物件{},require()返回的是module.exports而不是exports.所以一旦module.exports有了新的引用,exports就和module.exports失去聯絡,導不出了。

//person.js
exports.name = 'sicily';
console.log(module.exports)//{name:'sicily'}
module.exports = {name:'becky'};
複製程式碼
show.js
var person = require('./person');
console.log(person.name)//becky
複製程式碼

也可以這樣理解:exports是給module.exports新增屬性和方法。

返回資料型別

exports返回object物件,module.exports方法還可以單獨返回一個資料型別。當需要返回一個類,陣列,字元創時,就必須用module.exports.

相關文章