使用简单JavaScript继承定义的文档方法

时间:2012-06-11 04:40:40

标签: javascript netbeans code-completion jsdoc

我使用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中提供代码完成功能?

2 个答案:

答案 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开发工作。