2

重複の可能性:
Javascript変数変数

PHPには本当に便利なものがあります(私は確かに罪深いです)が、私はJavaScriptの代替手段を探しています。

PHPではこれを行うことができます:

$bar = 'var';
$$bar= 'test';

echo $var;

JavaScriptに似たものを探しています。関数に名前を渡し、その名前で新しい変数を初期化したい。それで:

function(name) {
    var name = new Function();
}

更新: わかりました、これが私がやろうとしていることです。もっと簡単な方法があることを私は知っています。

何かの複数のインスタンスを使用したい(今のところpluploadとしましょう)。

var uploader = new plupload();

これらを動的にロードしていますが、1ページに複数あります。私が抱えている問題は、uploader.init()、uploader.refresh()などを呼び出して、それぞれを独立して機能させる必要があるため、すべてに一意の名前を付ける必要があることです。

私が言ったように、私はもっと良い方法があると確信しています..私はそれを知らないだけです。

4

2 に答える 2

9

それは罪深いです。PHPとJavaScriptの両方(および他のほとんどすべての言語)で、関連するもののコレクションがある場合は、配列(順序付けられていてスパースでない場合)またはオブジェクト/連想配列(名前がある場合)でそれらを表す必要があります)。

var bar = 1;
var foo = "test";
var group = {};
group[bar] = foo;
console.log(group[1]);

変数変数は、本質的に、偽の配列/オブジェクトです。代わりに本物のものを使用してください—それらはあなたにはるかに多くの力を与え、維持するのがはるかに簡単です。

于 2012-07-13T15:32:46.930 に答える
1

編集内容を確認したら、オブジェクトを使用して一意のpluploadインスタンスを保存することをお勧めします。

var all_uploads = {};
all_uploads["unique_name_1"] = new plupload();
all_uploads["unique_name_2"] = new plupload();
all_uploads["unique_name_3"] = new plupload();

「unique_name」文字列は、任意の方法で生成できます。

もう1つの方法は、単純な配列とその上のpush()pluploadインスタンスを使用することです。残念ながら、特定のインスタンスを見つけるたびに配列を検索する必要がありますが、配列が小さいままである場合、パフォーマンスのトレードオフはごくわずかです。

于 2012-07-13T15:49:33.670 に答える