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