2014-09-19 41 views
0

我想在我想定義的js代碼上使用jsDoc: - 命名空間。 - A級。 - 靜態方法。 注意,代碼不正是我希望在運行時,但我有問題,開始使用jsDoc,所以我問自己,如果代碼是正確的......javascript jsdoc命名空間類靜態方法

/** @namespace 
* @name myNamespace 
* @description myNamespace description. 
*/ 
if (typeof (myNamespace) == "undefined") myNamespace = { }; 

/** @class 
* @name myClass 
* @description myClass description. 
* @memberof myNamespace 
* @inner 
*/ 
myNamespace.myClass = function() { }; 

/** @method 
* @name myStaticMethod 
* @description myStaticMethod description. 
* @param {String} myParam. Required. myParam description. 
* @return myReturnValue description. 
* @remarks remarks description. 
* @memberof myNamespace.myClass 
* @inner 
*/ 
myNamespace.myClass.myStaticMethod = function (myParam) { 
    var myReturnValue = myParam; 
    return myReturnValue; 
}; 

當我與jsDoc產生我在看索引: - 更正myNamespace定義。 - 更正myClass定義。 當我進入myClass時,我看不到myStaticMethod ... myStaticMethod不存在任何地方。 我的JS編碼是否正確? 如果編碼正確...評論是否正確寫入? 有什麼問題?

非常感謝......

+0

旁註:'typeof'是運營商,而不是一個函數; (1)+(2)'和'new ClassName()'而不是'new(ClassName())'''''''''''''''''''' 。 – 2014-09-19 09:00:20

+0

另外,你的代碼依賴於[*隱式全局變量*](http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html)來創建'myNamespace'。更好的方法是:'var myNamespace;'(如果它已經存在,則完全沒有任何影響),然後是'typeof'測試。 – 2014-09-19 09:01:42

+0

謝謝我會記住,並會嘗試重構代碼... – Falco 2014-09-19 09:10:03

回答

3

如果你打算使用@name,你需要告訴JsDoc成員是什麼;使用@name告訴JsDoc完全忽略上下文

就你而言,我認爲你需要加@static(你已經有@memberof,所以這很好)。

2

T.J.克勞德是正確的,我不能投票becouse我在社區的年輕,這是jsDoc校正代碼註釋,如果有人需要:

/** @namespace 
* @name myNamespace 
* @description myNamespace description. 
*/ 
if (typeof (myNamespace) == "undefined") myNamespace = { }; 

/** @class 
* @name myNamespace.myClass 
* @description myClass description. 
* @memberof myNamespace 
* @inner 
*/ 
myNamespace.myClass = function() { }; 

/** @function 
* @static 
* @name myNamespace.myClass.myStaticMethod 
* @description myStaticMethod description. 
* @param {String} myParam. Required. myParam description. 
* @return myReturnValue description. 
* @remarks remarks description. 
* @memberof myNamespace.myClass 
* @inner 
*/ 

myNamespace.myClass.myStaticMethod = function (myParam) { 
    var myReturnValue = myParam; 
    return myReturnValue; 
};