亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

node.js中為什么不能輸出exports = {a:1}?

node.js中為什么不能輸出exports = {a:1}?

蠱毒傳說 2018-10-03 17:18:00
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}`


查看完整回答
反對 回復 2018-10-08
  • 2 回答
  • 0 關注
  • 1024 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號