SO
(1、2、3 )にすでにいくつかの同様の質問があることは知っていますが、残念ながら、知識が限られJS
ているため、シナリオを個人のユースケースに外挿することはできません。したがって、この質問です。
次のコードを使用して、オブジェクトに動的にアタッチし、オブジェクトからいくつかの関数を呼び出すことができます。これは正常に機能します(で利用可能JsFiddle
)。
JavaScript:
$.extend(true, window, {
"MyPlugin": {
"dynamicFunction": dummy_function
}
});
function dummy_function() {
}
function real_function(string) {
alert(string);
}
function dynamic_call(function_name, text) {
MyPlugin["dynamicFunction"] = eval(function_name);
MyPlugin["dynamicFunction"](text);
}
HTML:
<button onClick="dynamic_call('real_function','some text');">click me</button>
アップデート:
おかしなことに、関数のスコープがローカルであるという問題を再現しようとしていましたが、そうでない例を書き終えました:)(私はあなたJS
が私のことではないと言いました)。したがって、私が解決しようとしていた問題を彼が推定したが提起しなかったため、window[function_name]
私はを受け入れましたが、すべての答えは正しいです。James Allardice
を使用せずに同じ機能を実現するにはどうすればよいeval
ですか?