データベースからその場でロードしたいオブジェクトの「ライブラリ」があります。各オブジェクトには、オブジェクトのタイプに応じて特定の時間に呼び出される独自の特殊関数が付属しています。これが機能しないことが指摘されていますが、理想的にはこれを実行できるようにしたいと思います。
library = {
"myObj" : {"name" : "myObj", "type" : "myType", "function" : function () { } } //, etc
}
文字列"myObj"
はプログラムにかなり渡されますが、一度にアクセスする必要があるのはオブジェクトの特定の値だけであり、状況によっては、実行する必要のある特定の関数があります。問題は、さまざまな機能で存在する可能性のある数百、最終的には数千の潜在的なオブジェクトを見ていることです。
このように呼び出される関数を格納する「正しい」方法は何ですか。evalを呼び出すことは、実行中に非常に危険であり、xss攻撃などを有効にする可能性があることを私は知っています。大規模なswitchステートメントや追加機能の肥大化したロードを本当に避けたいです。また、解決策はできるだけ簡潔にしたいと思います。
これが出てきたのはこれが初めてではありません。; /
ご協力いただきありがとうございます。