42
var testObj = this.getView();

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

4

3 回答 3

92

You can call it like this:

testObj.callableFunction && testObj.callableFunction();

or in details:

if (typeof testObj.callableFunction == 'function') {
    testObj.callableFunction();
}
于 2013-02-19T16:06:14.153 回答
4

dojo 具有可用于执行测试的功能。

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

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

});
于 2013-02-19T16:32:35.537 回答
3

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

var returnFromCallable = typeof testObj.callableFunction === 'function' &&
    testObj.callableFunction();
于 2013-02-19T16:09:30.630 回答