JSDoc用于特殊单例模式

时间:2015-10-29 14:26:55

标签: javascript phpstorm webstorm jsdoc

我有一个特殊的JS单例原型函数。

模式看起来或多或少像下面的例子。工作正常并且完成工作,但遗憾的是,PhpStorm完全不知道自动完成和其他有用的事情。

如何使用JSDoc告诉IDE新Item将导致使用ItemPrototype构建新对象,因此新Item(1).getId()将指向代码中的正确位置?

提前感谢您的时间。

var Item = (function(){
    var singletonCollection = {};

    var ItemPrototype = function(id){

        this.getId = function() {
            return id;
        };

        return this;
    };

    var Constructor = function(id){
        if (! (id in singletonCollection)) {
            singletonCollection[id] = new ItemPrototype(id);
        }

        return singletonCollection[id];
    };

    return Constructor;
})();

1 个答案:

答案 0 :(得分:3)

您可以尝试以下操作:

/**
 * A description here
 * @class
 * @name Item
 */
var Item = (function(){
    var singletonCollection = {};

    var ItemPrototype = function(id){
        /**
         * method description
         * @name Item#getId
         */
        this.getId = function() {
            return id;
        };

        return this;
    };

    var Constructor = function(id){
        if (! (id in singletonCollection)) {
            singletonCollection[id] = new ItemPrototype(id);
        }

        return singletonCollection[id];
    };

    return Constructor;
})();