亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

中西区| 阳谷县| 吐鲁番市| 常宁市| 砚山县| 北海市| 平邑县| 台湾省| 商城县| 浦东新区| 尼勒克县| 陇南市| 塔河县| 水城县| 寿阳县| 兴安县| 梁平县| 固阳县| 梁山县| 宿州市| 唐海县| 河北省| 孟州市| 大关县| 明星| 洛阳市| 赫章县| 沙坪坝区| 锦屏县| 蓝山县| 金华市| 金山区| 西盟| 福安市| 酉阳| 封开县| 吐鲁番市| 耒阳市| 旅游| 新野县| 平遥县|