91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Node.js中exports與module.exports有什么不同

發布時間:2021-01-21 16:54:42 來源:億速云 閱讀:158 作者:Leah 欄目:web開發

這篇文章給大家介紹Node.js中exports與module.exports有什么不同,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1. 方式一:用exports

//a.js

 exports.log =function (str) {
  console.log(str);
}
//b.js

 var s = require("./a");
 s.log("哈哈哈哈");

2. 方式二:用module.exports

//a.js
 module.exports = function (str) {
    console.log(str);
 }

//b.js
 var s = require("./a");
 s("嘻嘻嘻嘻");

如果將第一種方式的exports按照第二種方式寫成下面這樣就會出錯:

//a.js
 exports = function (str) {
  console.log(str);
}
//b.js

 var s = require("./a");
 s("哈哈哈哈");

exportsmodule.exports的初始值指向的是空對象,即{}。從源碼可以看到,其實模塊的require方法實質上是調用了_load方法,而_load方法,最終返回的是module.exports

Node.js中exports與module.exports有什么不同

Node.js中exports與module.exports有什么不同 

來分析一下出錯的原因。

由于最開始的時候,exportsmodule.exports都指向同一個對象。

第一種方式,是在給這個空對象{}添加屬性,又因為module.exports也是指向這個對象的,所以最終require方法返回的module.exports是指向了這個具有log方法的對象的,可以引用到模塊。

第二種方式是讓module.exports指向一片新的內存空間,exports指向的仍然是{},但是由于require方法返回的是module.exports,所以最終也能引入模塊。

但是最后那種寫法是讓exports指向一片新的內存空間,module.exports指向的仍然還是{},那么最終require方法是將module.exports返回,所以會導致報錯,說s不是一個function。

所以:

請牢記:require方法返回的是module.exports

關于Node.js中exports與module.exports有什么不同就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

毕节市| 南安市| 孟津县| 台南县| 南召县| 博爱县| 潢川县| 全南县| 虎林市| 闻喜县| 太保市| 当阳市| 礼泉县| 昌乐县| 四子王旗| 芒康县| 交口县| 元阳县| 宝应县| 芦山县| 平定县| 乐昌市| 牟定县| 鹿泉市| 藁城市| 江阴市| 嘉兴市| 凤台县| 于都县| 双鸭山市| 建始县| 金乡县| 莱芜市| 正镶白旗| 阳泉市| 昌吉市| 德格县| 宜黄县| 天祝| 大兴区| 金川县|