2013-02-19 55 views
33
var testObj = this.getView(); 

如何與道場(或只是本地JS),如果testObj有callableFunction檢查之前,我確實嘗試調用callableFunction(),如果它不存在失敗?我更喜歡native-DoJo解決方案,因爲我需要在所有瀏覽器上工作。如何檢查一個對象是否有函數? (道場)

回答

78

你可以這樣調用:

testObj.callableFunction && testObj.callableFunction(); 

或細節:

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

謝謝!這工作:) – antonpug 2013-02-19 16:08:24

+0

歡迎:) – dfsq 2013-02-19 16:08:52

+0

@dfsq不應該這==='功能'? – Ethan 2015-11-30 01:07:57

2

您應該測試該屬性存在,並且是一個函數:

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

道場有一個可用於執行測試的功能。

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

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

}); 
相關問題