2016-12-15 41 views
0

我想知道如何文檔的功能如下所示:JSDocs - 如何記錄隱含參數,並返回

var createInput = function() { 
    var type = this.type; 

    this.input = { 
    val: {}, 
    type: type 
    }; 
} 

技術上this.type的輸入參數和this.input是什麼,是從該對象返回。如何記錄這一點?

回答

-1

最好重寫一遍代碼,這樣它就可以獲取參數並返回一些沒有任何副作用的值。易於記錄!

的問題應該是更像如何避免副作用,而不是如何記錄副作用

var createInput = function (type) { 
    return { 
    val: {}, 
    type: type 
    }; 
} 

this.input = createInput(this.type); 
+0

原則上,我有些同意,但我們在代碼中使用了許多具有隱式共享變量的層次結構。我基本上需要在每個函數中發送'context'作爲參數,儘管我可以通過'this'直接訪問它。 我認爲這個問題可以寫成:如何在JSDocs中記錄類變量? – PunkCode

+0

你的意思是'對象'作爲參數? – sabithpocker

+1

檢查[this](http://usejsdoc.org/tags-param.html#parameters-with-properties)和[this](http://usejsdoc.org/tags-typedef.html) – sabithpocker

0

sapithpocker在第二個鏈接上跳過似乎顯示出一個潛在的解決方案。

/** 
* The context of the current class. 
* @typedef {Object} ClassContext. 
* @property {string} type - Indicates type. */ 

/** 
* A method for doing something. 
* @param {...ClassContext} this - a {@link ClassContext} object. 
*/ 
function createInput() { /* Code */ } 

這是說明文件,對於每個使用對象「擁有」的當前上下文,即this方法可以重複使用,並且遵循DRY-原理,以及。