【发布时间】:2014-11-13 19:33:39
【问题描述】:
我正在尝试在我想要定义的 js 代码上使用 jsDoc: - 命名空间。 - 一类。 - 静态方法。 请注意,代码在运行时完全符合我的预期,但是我在开始使用 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 编码正确吗? 如果编码正确... cmets 是否正确写入? 怎么了?
非常感谢...
【问题讨论】:
-
旁注:
typeof是运算符,不是函数;值周围不需要括号,出于同样的原因,您可以只写1 + 2而不是(1) + (2)和new ClassName()而不是new (ClassName())。 -
另外,您的代码依赖于The Horror of Implicit Globals 来创建
myNamespace。更好的方法是:var myNamespace;(如果它已经存在则根本没有效果),然后是typeof测试。 -
谢谢,我会记住并尝试重构代码...
标签: javascript class static namespaces jsdoc