如何检查一个对象是否有函数? (道场)

var testObj = this.getView(); 

如果在实际尝试调用callableFunction()之前,如果testObj具有callableFunction ,那么如何才能使用DoJo(或者只是本地JS)进行检查,如果不存在,就会失败? 我更喜欢本地DoJo解决scheme,因为我需要这个在所有浏览器上工作。

你可以这样调用它:

 testObj.callableFunction && testObj.callableFunction(); 

或详细说明:

 if (typeof testObj.callableFunction == 'function') { testObj.callableFunction(); } 

dojo有一个你可以用来执行testing的function。

 require(["dojo/_base/lang"], function(lang){ var testObj = this.getView(); if(lang.isFunction(testObj.callableFunction)){ testObj.callableFunction(); } }); 

您应该testing该属性是否存在,并且是一个函数:

 var returnFromCallable = typeof testObj.callableFunction === 'function' && testObj.callableFunction();