2 回答

TA貢獻1805條經(jīng)驗 獲得超9個贊
我可以為每個屬性導(dǎo)出和所需模塊G對象分配局部變量,但是顯然,將每個變量手動添加到測試文件以對應(yīng)G對象是一個繁瑣的過程。
不,這就是應(yīng)該的工作方式。您-并且只有您-負責模塊范圍中存在哪些局部變量。所包含模塊的“導(dǎo)出變量”中的任何更改均不應(yīng)破壞您的代碼。
訪問導(dǎo)入的模塊上的屬性(具有自選名稱)是一種方法。這與Python import app或相當import app as g。
如果您希望某些特殊屬性作為局部變量,通常會像在Python中一樣手動選擇它們from app import DATA, F1。在JS中,您將需要一個多條var語句,就像您在問題中顯示的那樣。但是,有一個語法功能稱為解構(gòu)分配,這將使此操作更加流暢。您可以在JavaScript 1.7+(Gecko),CoffeeScript或EcmaScript 6中使用它:
var {DATA, F1} = require("app.js");
有什么辦法可以自動執(zhí)行此操作?
是的,不是。您不應(yīng)該這樣做,但是可以-就像Python的皺眉一樣from app import *。引用他們說的話,對于JavaScript同樣如此:
[它]在解釋器中引入了一組未知的名稱,可能隱藏了您已經(jīng)定義的某些內(nèi)容。
請注意,通常不贊成*從模塊或包進行導(dǎo)入,因為這通常會導(dǎo)致可讀性差的代碼。但是,可以使用它來保存交互式會話中的鍵入。
在JavaScript中,您可以[1] 使用with-statement:
with (require("app.js")) {
…
}
[1]:并非處于ES5.1 嚴格模式下 -建議進行優(yōu)化

TA貢獻1828條經(jīng)驗 獲得超13個贊
好吧,我的項目基本上是在JS,像頂部的解釋coffee-script
,我想有一個變量DATA
如DATA
不G.DATA
在測試過程中。到目前為止,我在同一app.js
文件中有一個測試代碼,但是如果可能的話,我想將對象(在這種情況下G
)中的變量導(dǎo)出到單獨的文件-中test.js
。
添加回答
舉報