如何检查对象是否有功能? (道场)

时间:2013-02-19 16:04:27

标签: javascript dojo

var testObj = this.getView();

如果testObj在我实际尝试调用callableFunction之前有callableFunction()并且如果不存在则失败,我如何检查DoJo(或只是本机JS)?我更喜欢本机DoJo解决方案,因为我需要这个解决方案适用于所有浏览器。

3 个答案:

答案 0 :(得分:82)

您可以这样称呼它:

testObj.callableFunction && testObj.callableFunction();

或详细说明:

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

答案 1 :(得分:4)

dojo有一个可用于执行测试的函数。

require(["dojo/_base/lang"], function(lang){

  var testObj = this.getView();
  if(lang.isFunction(testObj.callableFunction)){
    testObj.callableFunction();
  }

});

答案 2 :(得分:2)

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

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