簡體   English   中英

在節點js中的多個文件之間共享變量

[英]Sharing the variable among multiple files in node js

在index.js中

let a=[];

const ab = function(){
a.push(1);
 console.log("b",a);}
module.exports = {
a:a,
ab:ab
};

在main.js中

 var lo = require("./a") console.log(lo.a); lo.ab(); console.log(lo.a); 

當我運行main.js時,第一個console.log在空數組中,但是第二個console.log是[1]。 我的問題是,當我們導入時,它在index.js中被引用,還是會在index.js中給出a的副本

如果我將index.js稍微更改為

 let a=[]; const ab = function(){ a=[]; a.push(1); console.log("b",a);} module.exports = { a:a, ab:ab }; 

那么輸出是[]和[]。

為什么會有所不同?

“ a”將通過引用公開給您的使用者模塊。 查看https://nodejs.org/api/modules.html#modules_caching了解詳細信息。

是。 導入時,在index.js中將“ a”稱為“ a”。 在javascript中,除基本變量外,變量始終按引用傳遞。 在這種情況下,a是一個數組。 因此,將引用相同的對象。

暫無
暫無

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

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