我使用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中提供代码完成功能?
答案 0 :(得分: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
注释,这也可以正常工作。
答案 1 :(得分:0)
最新版本(撰写本文时)为NetBeans 7.3 Beta 2。它支持JavaScript自动完成和调试。它也适用于Chrome,并提供NetBeans和Chrome之间的往返更新。您应该看看这是否有助于您进行JavaScript开发工作。