• ベストアンサー

JavaScriptの変数をさらに変数で表したい。

例えば、Perlだと ${$変数} とすれば変数自体を、別の変数で表せます。 javascriptでも同じことがしたくて 色々と試してみましたがどうにもうまくいきません。 検索しても答えが見つからないのでご質問させていただきます。 簡単な質問で申し訳ないのですが 回答お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Werner
  • ベストアンサー率53% (395/735)
回答No.3

evalをラップした関数を使う方法も、 windowオブジェクトのプロパティに[]演算子でアクセスする方法も ローカル変数に対してはうまく働きません。 //--------Sample-------------- function $(n){ return eval(n); } function test(){  var a = 'abc';  var abc ="456";  alert(eval(a)); //->456  alert(window.abc); //->undefined  alert($(a)); //->Error } test(); //---------------------------- なのでevalを普通に使えば良いと言うことになりますが、 たいていの場合evalなんて使わなくても オブジェクトに[]演算子でアクセスして連想配列として使えばやりたいことは出来るはずです。 //--------Sample-------------- var obj = {a:123, b:456}; obj.c = 789; var x1 = "a"; var x2 = "b"; var x3 = "c"; alert(obj[x1]); alert(obj[x2]); alert(obj[x3]); //----------------------------

kyotokyo
質問者

お礼

こういうやり方があるのですね 良く分かりましたありがとうございます。

その他の回答 (2)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

Javascriptでリファレンスが扱えるのかわかりません。 例えばグローバル変数/ローカル変数はwindowオブジェクトに、 コンストラクタ関数の変数はその関数オブジェクトにプロパティとして追加されるので、次のようにすれば'変数名'で扱うことは可能です。 リファレンスとは違いますが参考になれば。 var x1; // window.x1 var x2; // window.x2 varName = 'x1'; window[varName] = 'A'; // window.x1 = 'A' varName = 'x2'; window[varName] = 'B'; // window.x2 = 'B' alet(x1 + ':' + x2);// → A:B

kyotokyo
質問者

お礼

これも参考になりました。 ご回答ありがとうございます。

noname#84373
noname#84373
回答No.1

a = 'abc'; abc ="456"; alert($(a)); function $(n){ return eval(n); }

kyotokyo
質問者

お礼

ご回答ありがとうございます。 せっかく回答していただいたのに ポイントをあげられず申し訳ありません

関連するQ&A

  • CGIのPerlの変数をJavaScriptの変数に使えますか

    CGIのPerlの変数をJavaScriptの変数に使えますか 使い方お願いします。

    • ベストアンサー
    • CGI
  • javascriptの変数とperlの変数で計算

    初めて質問させていただきます。 javascript計算で困っています n[0] -=$y_p[1][0]; のperlの変数$y_p[1][0]にjavascriptの変数xを代入して計算しようと試みました。 n[0] -= $y_p[x][0]; しかしこれでは上手くいかないようです。 こんな感じのことは出来ないのでしょうか。 よろしくお願いします。

  • Javascriptの変数をCGIに送る方法

    オンラインゲームのようなものを作ろうとしているんですが、JavascriptからCGIに変数を送る方法がわかりません。 ネットでも検索してみたんですがなかなかいい結果が得られません。 そこで、JavascriptからGCI(できればCGIからJavascriptも)に変数を送る方法か、それが載っているサイトを紹介してください。

    • 締切済み
    • CGI
  • JavaScriptの配列変数検索

    JavaScriptの配列変数を検索する場合ですが、forでまわすしかないのでしょうか?もっとスマートな、そういった関数などは存在しないのでしょうか?

  • JavaScriptからの変数の受け取り方について

    GDownloadUrl( "read.php?id=" + encodeURIComponent(markerID)); このJavaScriptをPHPで受け取るにはどのようにしたら良いでしょうか? 以下のようなかんじでいいんでしょうか?↓ // マーカー名を、idという名前の変数でうけとる $id = mysql_escape_string( $_REQUEST["id"] ); 回答よろしくお願いします。

    • ベストアンサー
    • PHP
  • javascript 配列 変数名「array 」

    初歩的な質問失礼します。 現在jQueryを勉強しているjavascript初心者です。 教本の配列の項目で、変数名に「array」とありました。 ( var array =[ 100, 200, 300]; といった感じです。 ) これは配列を使う際のいわゆる通例?定番?的な変数名みたいなもので、array自体に意味は無いと考えてよいのでしょうか? すっきりしないのでどなたか教えてくださると助かります!

  • JavaScriptにPHPの変数

    どちらで質問しようか迷いましたけど^^; PHPでの変数をJavaScriptに移動(?)できないのでしょうか? $abs = 30; setTimeout("location.href='abc.php?var=<? echo $abc;?>'",1000*40); このような形で移したいのですが、これはできないのでしょうか?

    • ベストアンサー
    • PHP
  • JavaScript変数をPHPへ渡す

    JavaScriptで取得した変数を、PHP側で取得できるでしょうか? ある入力フォームのテキストボックスに値を入力後、別のウィンドウ(windowopen)を開き 先の入力したテキストの値を利用して条件を抽出させ、 結果を入力フォームに戻したいのですが・・・

    • ベストアンサー
    • PHP
  • Javascriptのエラー

    HPのurlが代入されているPerlの変数$urlをJavascriptに引数として渡し、HPを別ウインドウに表示したいのですが、 エラー ')'が抜けているとなりエラーになります <SCRIPT LANGUAGE="JavaScript"> <!-- function abc(def) { new1 = window.open("def", "", "width=400, height=310"); new1.moveTo(0,0); new1.document.close(); } //--> </SCRIPT> <A HREF=\"javascript:abc($url)\">別ウィンドウに表示</A> 何処が間違っているのですか。

  • jspからjavascriptの変数引継ぎ

    jspでデータベースからデータを取ってきて格納した配列をjavascriptでも同じように変数として扱いたいのですがどうすればいいでしょうか? javascriptによってオンマウス時に枠がポップアップし、javascript内で設定した文字を枠内に表示しようとしているため、jspからデータを引き継ぎたいのです。 jspではtitleとhonbunは配列で <form name="form_title"> <input type="hidden" name=title value="<%= title %>" > </form> <form name="form_honbun"> <input type="hidden" name=honbun value="<%= honbun %>" > </form> このように名前をつけ、javascriptでは var taitoru[]= document.form_title.title.value; var honbun[]= document.form_honbun.honbun.value; このように変数に代入しています jsp側ではSPANでオンマウス時にjavascriptを呼び出し、javascriptでは文字が配列のhonbun[0]等をポップアップした枠の中で表示させるようにさせたいのですが 枠そのものがポップアップしません 上記のjavascriptでの変数への代入部分をコメントアウトすると、枠自体は表示されます 配列を丸ごとjavascriptで配列に代入できないのであれば、1データずつ引き継ぐという方法でもいいのですが、どのようにjavascript側で代入すればいいのでしょうか?

専門家に質問してみよう