0

と呼ばれるjavascript変数がありますtemp

最終的にtempは、多くの文字列の1つに等しくなります。今のところ、に等しいとしましょう"stack"

変数(この場合、既存のグローバル変数)を文字列と動的stackに等しくなるように設定するにはどうすればよいですか?"stack"

では、別の時点でtempがに設定されている場合、どうすれば"overflow"設定できoverflow = "overflow"ますか?

ご協力いただきありがとうございます!

いくつかの回答がevalブラケットthis[variable]の使用について言及しているのを見たことがありますが、これを理解できないようです。

4

2 に答える 2

1

これを実行して、何が起こるか見てみましょう

var x = "something";

window[x] = x;

alert(window.something);

これが機能するのは、JavaScript オブジェクトがハッシュテーブルのように機能するためです

しかし、window オブジェクトを使用しないことをお勧めします。そうしないと、実際に必要なものを上書きしてしまう可能性があります。

于 2012-11-14T04:14:16.647 に答える
1

これを実現する最も簡単な方法は、これらの動的変数の割り当てを保持するオブジェクトを作成することです。

// object to hold temporary variables
var tempVars = {};

// as per your example, we set temp to 'overflow'
var temp = 'overflow';

// now we can set tempVars.overflow
tempVars[temp] = temp;   

tempVars.overflow次に、またはのいずれかで「オーバーフロー」にアクセスしますtempVars['overflow']。技術的には、 の代わりに オブジェクトを使用してこの方法でグローバル変数を割り当てることができますが、これは一般的に悪い考えです。windowtempVars

于 2012-11-14T04:14:20.540 に答える