簡體   English   中英

在Node.js中,為什么使用require函數的模塊之間的變量相等?

[英]In Node.js, why are variables equal the same across modules using the require function?

我在同一目錄中有以下文件:

data.js

var anArray = [1,2];
module.exports = anArray;

mod1.js

var data = require('./data');
module.exports = data;

mod2.js

var data = require('./data');
module.exports = data;

main.js

var mod1 = require('./mod1');
var mod2 = require('./mod2');

當我做mod1 === mod2這是true嗎? 我最初的想法是mod1和mod2文件應該包含一個數組,但是它們是不同的(對數組對象的不同引用)。

這是因為模塊被緩存。 由於您兩次引用相同的模塊,因此第二個模塊返回與第一個模塊完全相同的模塊。 在您的示例中,它與執行以下操作相同:

const arr1 = [1,2]
const arr2 = [1,2]

arr1 === arr1 // true
arr1 === arr2 // false

最后一行是false因為您正在比較兩個不同的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM