我有以下代碼。使用變量名稱在jQuery插件中調用函數
(function($) {
var myFunction = function(element) {
var myCallerFunction = function() {
var functionName = 'myInternalCallFunction';
myFunction[functionName]();
console.log(2);
}
var myInternalCallFunction = function() {
console.log(1);
}
myCallerFunction();
}
$.fn.myfunction = function(options) {
var func = new myFunction();
}
})(jQuery);
在myCallerFunction裏面我創建了一個變量來存放我想調用的函數名。然後我嘗試調用它,但返回它無法找到該函數。它發現的命名空間myFunction的沒關係,如果我改變:
myFunction[functionName]();
到
myFunctionTest[functionName]();
它返回它無法找到的「myFunctionTest」,而不是不能夠找到「myInterncalCallFunction」。
任何想法,爲什麼它無法找到該功能?
您正在定義'myInternalCallFunction'太遲。它根本不存在(並且不是myFunction的屬性) –
您不能動態檢索本地變量,它們必須是某個objct的屬性。而'myInternalCallFunction'不是'myFunction'的btw屬性。 – Esailija
現在看看,我修改了它 - 不正確的代碼發佈之前!我只是調用$()。myfunction()並且在Firebug中出現「TypeError:myFunction [functionName]不是函數」 – Ashley