オブジェクトの「タイプ」のマップがあり、それぞれに呼び出すことができる独自のプロパティと関数があるJavascriptでポリモーフィックオブジェクト指向の何かをしようとしています。
プロパティは正常に機能しますが、機能は機能しません。理由がわかりません。Firefox では次のエラーが表示されます: TypeError: this.functionmap[type].action is not a function
これが私のコードです:
var object = {
flapWings : function(count) { alert("I am flapping my wings "+count+" times"); },
kick : function(count) { alert("I am kicking my legs "+count+" times"); },
functionmap : {
"bird" : { label : "Bird", action : this.flapWings },
"horse" : { label : "Horse", action : this.kick }
},
doAction : function (type, count) {
alert("I am a "+this.functionmap[type].label);
this.functionmap[type].action(count);
}
};
object.doAction("horse", 5);
JSFiddle の例を次に示します。
理由がわかりません: アクション: this.kick は、そのすぐ上に作成されたキック関数への参照を取得していません!
action : function(count) : this.kick(count); のような愚かなことは避けたいです。それも機能しませんが-パラメーターを再入力することなく直接参照したい