1

jQueryで動的変数を作成しようとしています。使ってみたところうまく動作しているようですが、jQuery関数ではeval()ないと思います。eval()jQueryに相当するものはありeval()ますか? ここで私のコードを参照してください: http://jsfiddle.net/3CXgy/

var test = function(pos) {
    alert(eval('COUNT_'+pos));
}

var COUNT_LEFT = 20;
var COUNT_RIGHT = 30;
test('LEFT');
test('RIGHT');

を使用する以外にこれを行う別の方法はありeval()ますか? eval()上記の例で完全に問題がないかどうかはわかりません。

4

3 に答える 3

7

eval を使用する理由はほとんどありません

変数がヘッドで定義されていると仮定した場合のコードは次のとおりです

var test = function(pos) {
    alert(window['COUNT_'+pos]);
}

var COUNT_LEFT = 20;
var COUNT_RIGHT = 30;
test('LEFT');
test('RIGHT');

グローバル名前空間を汚染しないようにするには、次を使用します

var COUNT = {"left":20, "right":30 }
var pos = "left";
alert(COUNT[pos]);
于 2013-03-17T08:59:44.880 に答える
2

個人的には、いつでも簡単にアクセス、追加、変更、および削除できるオブジェクトに保存することを好みます。

var count = {
    'left' : 20,
    'right' : 30
}

var test = function(pos){
    alert(count[pos]);
}

test('left');
test('right');

大文字を使用する必要がある場合は、まとまりのあるパターンを使用するようにしてください。関数内ではすべて小文字に切り替えてください。

var test = function(pos){
    alert(count[pos.toLowerCase()]);
}
于 2013-03-17T09:02:32.170 に答える
1

名前でグローバル変数にアクセスするには、次の表記法を使用します。

window['COUNT_'+pos]

通常、変数をオブジェクトに保持したいでしょう:

var obj = {
     COUNT_LEFT:20,
     COUNT_RIGHT:30
}

そして、「変数」に としてアクセスできますobj['COUNT_'+pos]

あなたの質問が書かれているように、あなたは本当にjQueryが何であるかを理解していないと思います。jQuery は、JavaScript コードから使用できる便利な機能を提供するライブラリです。jQuery でプログラミングすることはできません。JavaScript 関数を使用して JavaScript でプログラミングし、その一部は jQuery ライブラリーに取り込まれています。

于 2013-03-17T08:59:17.397 に答える