如何在javascript中检查函数是否存在

时间:2013-10-05 10:00:26

标签: javascript jquery

我想在javascript中检查该类是否有方法。假设检查正常功能我可以使用 - 如 使用Jquery:

function foo(){}
if($.isFunction(foo)) alert('exists');

或者来自普通的javascript:

function foo(){}
if(typeof foo != 'undefined') alert('exists');

但是我想检查一个成员函数,比如我是否有类和方法 -

function ClassName(){
 //Some code
}

ClassName.prototype.foo = function(){};

我有一个存储在变量中的方法名称,我使用这个变量调用方法,如 -

var call_it = 'foo';
new ClassName()[call_it]();

但是对于处理运行时错误,我想在调用之前检查方法是否存在。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

if (ClassName.prototype[call_it]) {
    new ClassName()[call_it]();
}

答案 1 :(得分:2)

var call_it = 'foo';
if (typeof ClassName.prototype[call_it] === "function"){
   new ClassName()[call_it]();
}

OR

 var call_it = 'foo';
 var instance = new ClassName();
 if (typeof instance[call_it] === "function"){
     instance[call_it]();
 }

您应该使用 typeof 来确保该属性存在 并且是一个功能

答案 2 :(得分:0)

if ( typeof yourClass.foo == 'function' ) { 
    yourClass.foo(); 
}