2012-08-03 58 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); 
} 

有什麼要說的回調將與海峽和布爾的參數來調用一個好辦法嗎?

+0

回調函數通過'str'和'bool'?我不確定問題是什麼。 – 2012-08-03 00:30:34

+0

問題是如何以一種乾淨的方式發表評論 – Max 2012-08-03 00:33:26

+0

說這個回調會傳遞另外兩個參數有什麼問題? – 2012-08-03 00:34:42

回答

4

通常你只會寫函數的調用會講名字:

/* 
* @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 
*/ 
2

我不知道這方面的任何約定。我只會用:

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

我知道這是相當詳細的,但。

另一種辦法是做這樣的(類似的jQuery是怎麼做的,而不是在我所知道的代碼,但其文檔中)

@param {Function} onSuccess(response, statusCode) 

下面是一個例子http://api.jquery.com/jQuery.ajax/ 這是當然的不同因爲這是一個選項對象,文檔的結構與內聯文檔不同。但看看回調,你會看到相似之處。

爲了清楚起見,使用回調(response,statusCode)比回調(string,int)更好。如果你必須選擇一個。鍵入前的含義。

+0

亞這就是我現在正在做的事情,爲什麼我不高興 – Max 2012-08-03 00:36:39

+0

更新了它的一個例子,它的靈感來自jQuery文檔 – 2012-08-03 00:42:09

+0

thx,會看看並試驗! – Max 2012-08-03 00:57:33

0

嗯,有有很多方法可以在javascript中添加註釋;這裏是我的推薦/最佳實踐

使用///* */更好,因爲那樣你就可以使用後者來取出包含其他註釋的整個塊。但是,如果您想使用自動文檔生成工具,則必須使用類似於javaDoc樣式的註釋。

這是將與YUI DOC工作的範例(最好的)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 ; 
    } 

其他PARAMS例子: - http://usejsdoc.org/tags-param.html

希望這將幫助你:)