2

我想检查该类是否在 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]();

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

4

3 回答 3

2
if (ClassName.prototype[call_it]) {
    new ClassName()[call_it]();
}
于 2013-10-05T10:04:01.933 回答
2
var call_it = 'foo';
if (typeof ClassName.prototype[call_it] === "function"){
   new ClassName()[call_it]();
}

或者

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

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

于 2013-10-05T10:11:15.853 回答
0
if ( typeof yourClass.foo == 'function' ) { 
    yourClass.foo(); 
}
于 2013-10-05T10:06:08.670 回答