我有以下代码。使用变量名称在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