2012-02-21 276 views
0

我需要從另一個變量的值創建一個變量。作爲一個例子,這將是類似我會怎麼做這在VFP:如何從另一個變量的值創建一個變量

nameOfNextVar = "port_no_1"; 
eval(nameOfNextVar) = 7493 

那我就可以說:

alert(port_no_1); 

以及警報會給我7493 ...

這是可能的JavaScript?

TIA

丹尼斯

+0

與EVAL:重複http://stackoverflow.com/questions/592630/javascript-variable-variables – malletjo 2012-02-21 19:15:20

回答

2

您可以使用JavaScript eval方法嘗試類似的方式。如果可能的話,應該避免使用eval

var nameOfNextVar = "port_no_1"; 
eval(nameOfNextVar + " = " + 7493); 
alert(port_no_1)​;​ 

http://jsfiddle.net/ngTQf/

另一種方法是定義對象或當前實例的屬性。您也可以使用window來定義變量或屬性。

var nameOfNextVar = "port_no_1"; 
this[nameOfNextVar] = 7493; 
alert(this.port_no_1); 

window[nameOfNextVar] = 7493 
alert(window.port_no_1); 

http://jsfiddle.net/ngTQf/2/

+0

是的,作品@ShankarSangoli感謝您的快速回復。並感謝小提琴! – DKean 2012-02-21 19:56:02

+0

並感謝您的替代品。我認爲我更喜歡這個選項:「window [nameOfNextVar] = ...」好建議@ShankarSangoli – DKean 2012-02-21 20:35:40

5

作爲一個經驗法則,你應該儘量避免EVAL可能的情況下。但是,如果沒有其他方式,那麼你可以這樣做:

nameOfNextVar = "port_no_1"; 
eval("var " + nameOfNextVar + " = 7493"); 
alert(port_no_1); 

希望有所幫助。

+0

你搖滾......這是一個類似我們如何做到這一點的VFP,但這個評估只是評估文本。在VFP中,你可以說「打印eval(nameOfNextVar)」並取回7493.這可以在JavaScript中完成? – DKean 2012-02-21 19:26:10

+0

你可以有'eval(「print」+ nameOfNextVar);'。 – ralfe 2012-02-21 19:28:12

+0

其實,我試過了,id做了像VFP這樣的eval。非常感謝,@ralfe – DKean 2012-02-21 19:28:57

相關問題