好的,我搜索了我知道的每個網站,使用了我知道的每個關鍵字,但是我沒有找到與我搜索的主題相關的內容,也許整個問題都是錯誤的,但無論如何......
假設我們有一個名為 的模塊Index.js
,其中包含一個STORAGE
和兩個負責讀取/寫入的函式STORAGE
。
var STORAGE = []
function writeStorage(data) {
STORAGE.push(data)
}
function readStorage(data) {
//find data in STORAGE... and return result as RES
return RES
}
現在,在一個名為 的檔案write.js
中,我們匯入writeStorage()
.
在另一個名為的檔案中read.js
,我們匯入readStorage()
.
這就是問題出現的地方,
從同一源匯入的函式是否可以訪問它們的源全域變數?
即,我們可以修改STORAGE
in index.js
,使用writeStorage()
我們匯入的 inwrite.js
嗎?
并使用?讀取STORAGE
更改。read.js
readStorage()
uj5u.com熱心網友回復:
我想對此提供更明確的答案。函式有兩個作用域:詞法作用域和動態作用域。動態意味著,一個函式將在其中搜索變數,在那里它被呼叫:
let someVar = 'global';
function dynamicScope () {
someVar = 'dynamic';
console.log(somevar);
}
dynamicalScope (); // will display 'global'
詞匯意味著,該函式將搜索它被寫入/洗掉的變數:
let someVar = 'global';
function lexicalScope () {
someVar = 'lexical';
console.log(somevar);
}
lexicalScope(); // will display 'lexical'
但是在 JavaScript 中,沒有辦法使用動態作用域,所以所有函式都會在它被宣告/撰寫的地方搜索變數。
不要注意細節,這只是一個偽代碼。
uj5u.com熱心網友回復:
簡短的回答:是的,這是可能的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484648.html
標籤:javascript 节点.js 模块 包裹 全局变量
上一篇:為朋友的帖子制作演算法?