2012-09-26 102 views
6

如何在NodeJS中創建動態變量名?一些例子說存儲在window變量,但我假設這是客戶端JavaScript。如我錯了請糾正我。Javascript:服務器端動態變量名

+0

所有變量都是動態的,你的意思是問如何在節點中創建全局變量? – Mahn

+0

你的意思是,你如何聲明一個變量? var x ='val';或x ='val';在開始使用Node或其他任何東西之前,您可能需要學習一些更基本的JavaScript。 – Geuis

回答

14

一般來說,你會做這樣的事情:

var myVariables = {}; 
var variableName = 'foo'; 

myVariables[variableName] = 42; 
myVariables.foo // = 42 
4

在node.js中有global上下文,這相當於客戶端js中的window上下文。在任何閉包/函數/模塊之外聲明一個變量,就像在純Javascript中一樣,它將使其駐留在全局上下文中,即作爲global的屬性。

我從你的問題知道你是想下面的內容類似:

var something = 42; 
var varname = "something"; 
console.log(window[varname]); 

這node.js中會變成:

var something = 42; 
var varname = "something"; 
console.log(global[varname]); 
+1

我知道這是他暗示的問題,但將'global'命名空間中的東西放在'node'中。你不會找到很多做這種事情的圖書館。 – Bill

+0

@Bill正確,但我的印象是,OP在node.js中缺少窗口上下文時感到困惑,並想知道一個等價的東西。 – Mahn

+0

也許在節點中使用「runInThisContext」與vm模塊會稍微優先? http://www.davidmclifton.com/2011/08/18/node-js-virtual-machine-vm-usage/ – jonathanKingston