第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在JavaScript(node.js)中導(dǎo)入變量?

是否可以在JavaScript(node.js)中導(dǎo)入變量?

幕布斯6054654 2019-09-27 15:45:37
我在中有變量app.js:var G = {};module.exports = G;var DATA = G.DATA = 'DATA';var F1 = G.F1 = function(val){  return val;};通過這種方式,我可以導(dǎo)出對象下的變量G,同時可以直接寫入變量DATA而無需G.前綴。到現(xiàn)在為止還挺好?,F(xiàn)在,我想運行一個測試了app.js在test.js:var G = require('./app.js');console.log(G.DATA);  // -> DATA這可行,但是我也想直接寫DATA沒有G.前綴的變量來訪問變量console.log(DATA);  // -> DATA當然可以var DATA = G.DATA;對于每個變量(屬性)導(dǎo)出和所需的模塊G對象,但顯然,將每個變量手動添加到測試文件以對應(yīng)G對象是一個繁瑣的過程。有什么辦法可以自動執(zhí)行此操作?到目前為止,我很悲觀JS function包含var在自己的范圍內(nèi),因此從理論上講,沒有辦法var為每個對象屬性都提供一個輔助函數(shù)。謝謝。PS。我想避免任何eval或VM節(jié)點解決方案。我過去曾經(jīng)嘗試過,但問題太多了。
查看完整描述

2 回答

?
Cats萌萌

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)化


查看完整回答
反對 回復(fù) 2019-09-27
?
慕田峪7331174

TA貢獻1828條經(jīng)驗 獲得超13個贊

好吧,我的項目基本上是在JS,像頂部的解釋coffee-script,我想有一個變量DATADATAG.DATA在測試過程中。到目前為止,我在同一app.js文件中有一個測試代碼,但是如果可能的話,我想將對象(在這種情況下G)中的變量導(dǎo)出到單獨的文件-中test.js。

查看完整回答
反對 回復(fù) 2019-09-27
  • 2 回答
  • 0 關(guān)注
  • 867 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號