基本上我试图检查一个函数是否动态存在..
这是我的代码:
var somevar = 'somefunction';
if(typeof somevar === 'function'){
somefunction();
}
function somefunction(){
alert('something');
}
上面的代码不起作用
有没有办法实现我想要实现的目标?
基本上我试图检查一个函数是否动态存在..
这是我的代码:
var somevar = 'somefunction';
if(typeof somevar === 'function'){
somefunction();
}
function somefunction(){
alert('something');
}
上面的代码不起作用
有没有办法实现我想要实现的目标?
试试这个 :
var somevar = 'somefunction';
if(typeof eval(somevar) === 'function'){
//somefunction();
eval(somevar+'()');
}
function somefunction(){
alert('something');
}
如果函数是全局的,你可以通过检查;
if (typeof window[somevar] === "function") {
}
否则,您只是检查变量“somevar”的类型(在这种情况下,在字符串中)。
如果它不是全局的,但存在于某个对象上,则可以window
在上面的示例中将其替换为存在潜在函数的对象的名称。如果它只是一个非全局范围内的函数,那么你就不走运了。
某种 jsfiddle
var somevar = 'somefunction';
if(isFunction(eval(somevar))){
eval(somevar+'()');
}
function somefunction(){
alert('something');
}
function isFunction(x){
return Object.prototype.toString.call(x) === "[object Function]";
}