因此,我已經想出瞭如何在字符串中包含方法名稱時調用JavaScript中的方法,例如但是,我收到以下錯誤消息,指出它無法找到該方法,並且在研究後我仍然不確定原因。嘗試使用字符串調用方法名稱:未捕獲TypeError:Object [object global]沒有方法
調用由實際名稱作品的方法,而不是通過使用window[strCallback]();
錯誤:
Uncaught TypeError: Object [object global] has no method 'targetMethod'
代碼:
function startMethod(strCallback) {
var results = '...';
// window[strCallback](results); // <-- Causes error
targetMethod(results); // <-- Works
}
function targetMethod(r) {
console.debug(r);
}
startMethod('targetMethod');
感謝您的幫助。
它看起來像方法的變通方法'targetMethod'不是一個全球性的方法,這就是爲什麼您正在收到錯誤消息。 如果您已將其聲明爲封閉方法,那麼您無法使用此方法訪問它 –
您是否可以將更多上下文分享給代碼?比如這些函數是否在另一個函數中聲明等 –
對不起,我是JavaScript新手 - 感謝downvote! - 上面的代碼是確切的代碼減去通過ajax調用獲取結果的填充符。 –