私は非常に複雑な問題を抱えています: Linux 端末のように動作するアプリを作成しています。だから私はコマンドを入力し、アプリは何かをします。これは私のクラスの1つです:
function _console() {
this.name = "console";
this.command_list = {
"help": function () {
this.app = function () {
write("Sorry, no commands so far ;P");
return this;
};
this.help = "type to get help";
return this;
}
};
this.start = function () {
write("Hi :)");
};
return this;
};
このクラスを配列に保持します。
var mainData = {
openedApps: new Array(new _console()),
};
問題は、「ヘルプ」機能の最初の使用が正常に機能することです。しかし、もう一度入力するとエラーが表示されます:
TypeError: オブジェクト # のプロパティ 'help' は関数ではありません
これは私が私の機能を実行する方法です:
mainData.openedApps[0].command_list["help"]().app();
ここに貼り付けたものと非常によく似た別のクラスがありますが、変数に保持していません。私はそれを次のように実行します:
_global_commands().command_list["command"]().app();
これは問題なく動作するので、これはクラスを var 内に保持することに問題があると思います。しかし、私は自分が何を間違えたのか本当にわかりません。