0

重複の可能性:
JavaScript オブジェクトのメソッドを動的に呼び出す方法

さまざまなプロパティの機能があります

setCar : function() {}
setBike : function() {}
setAirPlane : function (){}

フォーマットキー値にオブジェクトがあります

var json = { Car : "Car1",
             Bike : "Bike1",
             AirPlane  : "test1" }

オブジェクトの値に応じて動的に set 関数を呼び出したい:

 updateProperties : function(json) {        
 for ( var property in json) {
     //set + property (AdditionalProperties[property])
 };   

プロパティには関数の名前 (Car,Bike,AirPlane) があり、AdditionalProperties[property] にはプロパティの値 ( Car1,Bike1,test1.

それは可能ですか?

4

2 に答える 2

4

なぜだめですか?次のことが可能です。

for (var property in obj) {
    typeof funcContainer["set" + property] === "function"
      && funcContainer["set" + property](obj[property]);
}

どこfuncContainerにある:

var funcContainer = {
    setCar : function() {},
    setBike : function() {},
    setAirPlane : function() {}
};
于 2013-01-31T12:29:47.923 に答える
1

もしも

objWithFuncts = {
...
setCar : function() {}
setBike : function() {}
setAirPlane : function (){}
...
}

あなたができるよりも:

 updateProperties : function(json) {        
 for ( var property in json) {
       if(json.hasOwnProperty(property) && objWithFuncs["set" + property])
           objWithFuncs["set" + property](AdditionalProperties[property])
 }; 

obj["propName"] 次のように、インデックスを使用してオブジェクトの任意のプロパティにアクセスできることを覚えておいてください。obj.propName

于 2013-01-31T12:31:27.063 に答える