var testObj = this.getView();
如果testObj在我实际尝试调用callableFunction
之前有callableFunction()
并且如果不存在则失败,我如何检查DoJo(或只是本机JS)?我更喜欢本机DoJo解决方案,因为我需要这个解决方案适用于所有浏览器。
答案 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();