天天看點

exports和module.exports的差別

exports 隻能通過 exports.xxx 方式導出資料, 不能直接指派

以下的方式是通過 exports.xxx 方式導出資料的

a.js

let name = "BNTang";
exports.str = name;      

b.js

let aModule = require("./08-a.js");

console.log(aModule);      

運作結果如下所示:

exports和module.exports的差別

在來看看直接指派會出現怎樣的結果:

a.js

let name = "BNTang";

exports = name;      

b.js

let aModule = require("./08-a.js");

console.log(aModule);      

運作結果如下所示:

exports和module.exports的差別

module.exports 既可以通過 module.exports.xxx 方式導出資料, 也可以直接指派。

以下的方式是通過直接指派方式導出資料的

a.js

let name = "BNTang";

module.exports = name;      

b.js

let aModule = require("./08-a.js");

console.log(aModule);      

運作結果如下所示:

exports和module.exports的差別

在來看看 module.exports.xxx 方式導出資料會出現怎樣的結果:

a.js

let name = "BNTang";

module.exports.str = name;      

b.js

let aModule = require("./08-a.js");

console.log(aModule);      

運作結果如下所示:

exports和module.exports的差別

注意點

在企業開發中無論哪種方式都不要直接指派, 這個問題隻會在面試中出現。