如何检查属性是否是Javascript中的函数

时间:2011-04-21 11:45:41

标签: javascript

在Javascript中,我想检查一个属性(或对象)是否是一个函数。

我现在的代码:

if (this.execute != null)
{
    this.execute();
}

错误:对象不支持此属性或方法。

我想做类似

的事情
if (this.execute != null and isExecutableFunction(this.execute)== true )
{
    this.execute();
}

Javascript中是否存在检查属性(或对象)是否为函数的问题 任何帮助都应该受到赞赏 感谢。

3 个答案:

答案 0 :(得分:10)

试试这个:

if(typeof this.execute == 'function') { 
this.execute(); 
}

答案 1 :(得分:0)

您可以使用typeof

var func = function(){};
alert(typeof func)

如果你把它放在你的firebug控制台并运行它,你得到function作为回报。

所以你只需要检查它。

答案 2 :(得分:0)

试试这个。在jsfiddle工作正常。因为我没有在函数内部工作,所以我将其更改为t。尝试使用标记为2和未​​标记的第2行。

var t= new Object;

//t.execute = function() { alert('executing'); };

if(t.execute)  
   t.execute();
else
    //code here when execute fails
  alert('Function could not execute');