var文字列で関数を呼び出す必要があります。私はこの質問が以前に尋ねられたことを知ります: How to execute a JavaScript function when I have its name as a string名前が文字列であるときにJavaScript関数を実行します - 動作していません
しかし解決策は機能しません。私は間違ったことをしましたか?書かれたよう https://jsfiddle.net/puLh9keg/
// a.callThis is the function that will be called using var string
var a = {
callThis:
function (ok, param1, param2) {
alert(ok + "|" + param1 + "|" + param2);
}
}
// Below is from https://stackoverflow.com/questions/359788/how-to-execute-a-javascript-function-when-i-have-its-name-as-a-string
function executeFunctionByName(functionName, context /*, args */) {
var args = [].slice.call(arguments).splice(2);
var namespaces = functionName.split(".");
var func = namespaces.pop();
for(var i = 0; i < namespaces.length; i++) {
context = context[namespaces[i]];
}
return context[func].apply(context, args);
}
// try call a.callThis by var string
var fn = 'a.callThis';
executeFunctionByName(fn, window, true, 'param1', 'param2');
あなたが何を意味を教えてください "動作していません。" –
あなたのコードがどのように結果ウィンドウに追加されているのかを見てください(devツールを使用してください)。正しいJSFiddle設定を使ってこの作業を行うことができません。 –
'var a'はグローバルスコープにはありません。 = ' - JSが"読み込み中 "ではなく、"本文の折り返しなし "または"頭の折り返しなし "で実行されていないことを確認する –