我在使用参数调用函数时遇到问题,其中函数的名称存储在变量中。我一直在使用.call
并.apply
尝试调用该函数,但并没有取得太大的成功。
这是我尝试过的:
function slideup(){
//exec animation
}
Screen.prototype.init = function() {
//has access to `this`, Screen is instantiated via constructor and passed the calling element
var self = this;
self.animation = 'slideup';//this is a switch in my code with default val of 'slideup'
function hashChange(){
self.animation.apply(self, [arg1,arg2]);
}
}
如果我替换self.animation.apply
为slideup.apply
... 函数运行正常,但是当我运行self.animation.apply
或self[animation].apply
得到self.animation.apply is not a function
. 如何使用存储在变量中的字符串值来调用slideup()
函数,并将正确的参数传递给它?这个想法是self.animation
变量将存储自定义动画函数的名称,可以通过自定义插件的传递选项覆盖。