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

मैं कैसे डोजो (या बस देशी जे एस) यदि testObj callableFunction है के साथ जांच कर सकते हैं इससे पहले कि मैं वास्तव में callableFunction() फोन और असफल हो यह वहाँ नहीं है करने की कोशिश? मैं एक मूल-डोजो समाधान पसंद करूंगा क्योंकि मुझे सभी ब्राउज़रों पर काम करने की ज़रूरत है।कैसे जांचें कि किसी ऑब्जेक्ट में कोई फ़ंक्शन है या नहीं? (Dojo)

उत्तर

78

आप इस तरह यह कॉल कर सकते हैं:

testObj.callableFunction && testObj.callableFunction(); 

या विवरण में:

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

धन्यवाद! यह काम करता है :) – antonpug

+0

आपका स्वागत है :) – dfsq

+0

@dfsq यह === 'फ़ंक्शन' नहीं होना चाहिए? – Ethan

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(); 
    } 

}); 
संबंधित मुद्दे