【问题标题】:Document methods defined using Simple JavaScript Inheritance使用简单 JavaScript 继承定义的文档方法
【发布时间】:2012-06-14 00:45:05
【问题描述】:
我使用John Resig's Simple JavaScript Inhertance 定义类并使用JSDoc 的@lends 和@constructs 注释记录它们,但NetBeans 不提供代码完成功能。这适用于我使用namespace 定义的模块,因为我直接引用它们。这是一个简单类的示例:
MyClass = Class.extend(
/** @lends MyClass.prototype */
{
/** @constructs */
init: function () {
console.log('init');
},
foo: function () {
console.log('foo');
}
}
);
var c = new MyClass();
c. <-- ctrl-space only shows built-in methods like hasOwnProperty() and toString()
有谁知道记录这些类以便在 NetBeans 中使用代码完成的方法?
【问题讨论】:
标签:
javascript
netbeans
code-completion
jsdoc
【解决方案1】:
NetBeans 仍然不支持@lends、@constructs、@memborOf 或类似标签。它们设置为 7.4 和 8.0,但我不相信它们会很快实施,因为它们是从 7.0 左右报告的。两个workarounds 中的第二个将与Class.extend() 一起工作,方法是首先将包含方法的(以前的)匿名对象分配给类。
原型
/** @class */
var Canine;
Canine = function() {};
Canine.prototype = props;
/** @type Canine */ var canine = new Canine();
匿名对象
/** @class */
var Feline = {
purr: function() { console.log('meow'); },
fall: function() { console.log('landed on feet'); }
};
Feline = create(Feline);
/** @type Feline */ var feline = new Feline();
注意:即使在 NetBeans 7.4 补丁 1 中没有 @type 注释,这仍然有效。
【解决方案2】:
最新版本(撰写本文时)是NetBeans 7.3 Beta 2。它支持 JavaScript 自动完成和调试。它也可以在 Chrome 中工作,并提供 NetBeans 和 Chrome 之间的往返更新。您应该看看这是否有助于您的 JavaScript 开发工作。