2017-04-14 39 views
0

文字列を関数に渡し、共通の接尾辞を連結してその新しい文字列を既存の変数として使用したいと考えています。たとえば、文字列と変数を連結して変数を得る

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

updateInfo(arg) 
{ 
    console.log(arg + "Info"); 
} 

updateInfo("first"); 
/* Should print "The first string says this.", but instead does nothing. */ 

私は間違っていますか?これは普通のjavascriptですが、私は他のライブラリに公開しています。

答えて

0

JavaScriptを使用関数evalがあります()、ここにはdoc

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

function updateInfo(arg) 
{ 
    console.log(eval(arg + "Info")); 
} 

updateInfo("first"); 
+0

私がeval()について読んでいたとき、それは私がそれを試してみたくないような悪いラップでした。しかし、この場合、正しい解決策であることが証明されています。 – Naltroc

0

それはあなたがグローバル変数の値を取得するためにwindow[arg + "Info"]を使用する必要が

updateInfo(arg) 
{ 
    firstInfo = arg + "Info"; 
    console.log(firstInfo); 
} 

    updateInfo(firstInfo); 
0

次のようになります。ここでは

console.log(window[arg + "Info"]); 

をフルfiddle

0

"firstInfo"変数はグローバルスコープで定義されているため、ウィンドウオブジェクトにアタッチされています。 ウィンドウ参照なしで関数スコープでコンソールをコンソール化すると、ローカルスコープで呼び出されます。

私はウィンドウオブジェクトを使用しました。

var firstInfo = "The first string says this."; 

var secondInfo = "The second says that."; 

function updateInfo(arg) 
{ 
    console.log(window[arg + "Info"]); 
} 

updateInfo("first"); 
関連する問題