1 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
如何導(dǎo)出函數(shù)內(nèi)部的常量?
對(duì)此有兩個(gè)答案:
你不知道。這沒有道理。相反,您可以將常量移出函數(shù)并將其導(dǎo)出。
MyFunctionA
您完全按照您所做的那樣進(jìn)行操作,但是該常量在至少執(zhí)行一次之前不會(huì)出現(xiàn)在模塊的導(dǎo)出中。這是可能的,因?yàn)槟褂玫?CommonJS 樣式模塊是動(dòng)態(tài)的并且可以在運(yùn)行時(shí)更改。然而,正如您所發(fā)現(xiàn)的,使導(dǎo)出依賴于函數(shù)調(diào)用會(huì)帶來麻煩。
因此,采用#1,我們得到:
// my function in File_A.js
const myVariable = "hello"; // Odd name for a constant? ;-)
module.exports.myVariable = myVariable;
const MyFunctionA = () => {
return (
/*...*/
);
};
對(duì)此有幾點(diǎn)說明:
MyFunctionA
仍然關(guān)閉常量并按照以前的方式引用它。myVariable
不會(huì)成為全局范圍,因?yàn)?CommonJS 模塊的頂級(jí)范圍不是全局范圍。
添加回答
舉報(bào)