2012-08-03 15 views
5

बस उत्सुक है कि कॉलबैक फ़ंक्शन पर कौन से पैरामीटर पारित किए जाएंगे, यह जानने का एक अच्छा तरीका क्या है।कॉलबैक फ़ंक्शंस पर टिप्पणी

मान लीजिए हम निम्नलिखित कोड और अधूरा टिप्पणी

/** 
* an utterly useless function 
* 
* @param {String} an useless string 
* @param {Boolean} an useless boolean 
* @param {Function} ??? 
*/ 

function Useless (str, bool, callback) { 
    callback(str, bool); 
} 

एक अच्छा तरीका कॉलबैक साथ str और bool मापदंड हैं बुलाया जाएगा कहने के लिए क्या है?

+0

कॉलबैक समारोह 'str' और 'बूल' पारित किया? मुझे यकीन नहीं है कि मुद्दा क्या है। –

+0

समस्या यह है कि इसे क्लीन तरीके से कैसे टिप्पणी करें – Max

+0

और कॉलबैक कहने में क्या गलत है अन्य दो पैरामीटर पारित किए जाएंगे? –

उत्तर

4

आमतौर पर आप सिर्फ समारोह के एक मंगलाचरण बोल नाम के साथ लिखेंगे जावास्क्रिप्ट में टिप्पणियां जोड़ने के कई तरीके हैं; यहां मेरी सिफारिश/सर्वोत्तम प्रथाओं है।

// का उपयोग /* */ से बेहतर है क्योंकि तब आप बाद में अन्य टिप्पणियों वाले एक संपूर्ण ब्लॉक को निकालने के लिए उपयोग कर सकते हैं। हालांकि, अगर आप एक स्वचालित प्रलेखन उत्पादन उपकरण का उपयोग करना चाहते हैं, तो आपको javaDoc शैली के समान टिप्पणियों का उपयोग करना होगा।

यह एक उदाहरण है कि YUI डॉक्टर के साथ काम करेगा (सबसे अच्छा एक) http://developer.yahoo.com/yui/yuidoc/#start

/** 
* This is a description 
* @namespace My.Namespace 
* @method myMethodName 
* @param {String} str - some string 
* @param {Object} obj - some object 
* @param {requestCallback} callback - The callback that handles the response. 
* @return {bool} some bool 
*/ 
    function SampleFunction (str, obj, callback) { 
     var isTrue = callback(str, obj); // do some process and returns true/false. 
     return isTrue ; 
    } 

अन्य पैरामीटर उदाहरण है: - http://usejsdoc.org/tags-param.html

आशा यह आप में मदद मिलेगी :)

2

मुझे इसके लिए किसी भी सम्मेलन के बारे में पता नहीं है। मैं बस उपयोग करूँगा:

@param {Function} Called on success with the response (string) as the first param and the status code (int) as the second 

मुझे पता है कि यह काफी verbose है।

एक अन्य विकल्प इस तरह यह कर रहे होते (कैसे jQuery यह होता है, कोड है कि मैं के बारे में पता कर रहा हूँ में नहीं के समान है, लेकिन उनके दस्तावेज में)

@param {Function} onSuccess(response, statusCode) 

यहाँ एक उदाहरण है http://api.jquery.com/jQuery.ajax/ यह निश्चित रूप से अलग है चूंकि यह एक विकल्प वस्तु है और दस्तावेज़ में इनलाइन दस्तावेज की तुलना में एक अलग संरचना है। लेकिन कॉलबैक देखें और आप समानता देखेंगे।

स्पष्टता के लिए कॉलबैक (स्ट्रिंग, int) की तुलना में कॉलबैक (प्रतिक्रिया, स्थिति कोड) का उपयोग करना भी एक बेहतर विचार है। यदि आपको वह चुनना है जो है। प्रकार से पहले मतलब। एक बहु वर्णन

/* 
* @param {String} input: the text 
* @param {Function} callback(output, hasChanged): called after calculation 
*/ 

या, यदि पैरामीटर स्पष्टीकरण की जरूरत है, तो आप उपयोग कर सकते हैं:

/* 
* @param {String} input: the text 
* @param {Function} callback(result, change) 
      the function that is called after calculation 
      result {String}: the output of the computation 
      change {Bool}: whether a change has occured 
*/ 
+0

या अधिक के स्पष्टीकरण (प्रकार और विवरण) की अनुमति देता है, वैसे ही मैं इस समय यह कैसे कर रहा हूं और मैं दुखी क्यों हूं – Max

+0

इसे एक उदाहरण के साथ अद्यतन किया गया है जो इसे jQuery से प्रेरणा लेता है प्रलेखन –

+0

thx, चारों ओर एक नज़र और प्रयोग करेंगे! – Max

संबंधित मुद्दे