0

私はこのオブジェクトを持っています

function paymentPlan(name, price, days, active){
        this.name=name;
        this.price=price;
        this.days=days;
        this.active=active;
    }

    var plan_1 = new paymentPlan("unlimited", 0, -1, -1);
    var plan_2 = new paymentPlan("starter", 100, 7, 2);

そして、別の変数から変数インスタンスを構築することによってオブジェクトインスタンスの1つを選択する必要があります。基本的に、参照の最後に番号を追加します。

たとえば、選択したときにplan_2の名前を出力する必要がある場合は、次のように参照を作成する必要があります。

var plan_id = 2;

alert( plan_+plan_id.name ); 

どうやってやるの?

4

4 に答える 4

4

最善のアプローチは、プランをに保存することarrayです。

var plans = [];
plans.push(new paymentPlan("unlimited", 0, -1, -1));
plans.push(new paymentPlan("starter", 100, 7, 2));

var plan_id = 1;
alert(plans[plan_id].name); // "starter"
于 2012-12-13T22:03:47.323 に答える
1

変数をグローバルに定義する場合は、windowオブジェクトを使用できます。

window["plan_" + plan_id].name;

ただし、ローカルで定義されたオブジェクト内の変数をいつでも初期化できます。例:

var plans = {
    plan_1 : new paymentPlan("unlimited", 0, -1, -1),
    plan_2 : new paymentPlan("starter", 100, 7, 2)
};

plans["plan_" + plan_id].name;
于 2012-12-13T22:02:53.930 に答える
0

親オブジェクトを使用する

var plans = {};
var plan_1 = new paymentPlan("unlimited", 0, -1, -1);
plans["plan_1"] = plan_1;
alert( plans["plan_"+plan_id.name] );
于 2012-12-13T22:04:02.643 に答える
0

を使用してみてくださいeval()

alert(eval('plan_'+plan_id+'.name'));
于 2012-12-13T22:04:15.670 に答える