node中exports和module.exports都是一個空對象,輸出和引入的方式有:方式1:// a.jsmodule.exports = {a:1}// b.jsimport a from 'a.js' 或者 require('a.js')// 輸出 {a:1}方式2:// a.jsexports.a = 1// 引用的方式同方式1 輸出的值類型也是一樣都是一個對象// 但是如下這種方式為何不能輸出exports = {a: 1}// 引用結果為 {}exports和module.exports 都是指向一個空對象的,exports = {a: 1}這種方式也是這個空對象賦值,但是輸出的為什么還是一個空對象呢?求大佬指點。。
2 回答

RISEBY
TA貢獻1856條經驗 獲得超5個贊
Node 對每個 JS 模塊都注入了兩個變量:
module = { exports: {} } exports = module.exports
注意,這兩個「exports」雖然名字相同,但含義完全不同,一個是 module
對象的屬性,一個是變量,只不過在模塊初始化階段這兩個標識符引用了同一個對象。
于是,下面這個情況就好理解了:
module.exports.something = 123
// 此時 `exports.something` 也是 123,因為 `module.exports` 和 `exports` 引用了同一個對象
exports = {something: 456}
// 這樣 `exports` 這個變量就被賦值為另一個對象,原來的對象依然被 `module.exports` 引用著
// 此時 `module.exports` 還是 `{something: 123}`
- 2 回答
- 0 關注
- 1024 瀏覽
添加回答
舉報
0/150
提交
取消