繁体   English   中英

如何在JavaScript中检查功能是否存在

[英]How to check if function is exist or not in javascript

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

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

if (ClassName.prototype[call_it]) {
    new ClassName()[call_it]();
}
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来确保该属性存在并且是一个函数

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM