【问题标题】:Hiding privates from Javascript Intellisense从 Javascript Intellisense 隐藏隐私
【发布时间】:2010-11-29 02:38:40
【问题描述】:

是否可以在 Visual Studio 2008 的 javascript intellisense 下拉列表中隐藏某些函数/字段?是通过javascript文档XML还是通过以某种方式命名私有?

我在 jquery vsdoc 文件中看到了 <private />,它暗示了这种行为,但不符合我的期望

{
    __hiddenField: 0,
    /// <private />
    increment: function(){
        /// <summary>Increments a private variable</summary>
        __hiddenField++;
    }
}

但是由于字段不能包含文档(因为它们没有正文),因此必须在顶部记录它们。但还是不行:

{
    /// <field name="__hiddenField" type="Number" private="true">PRIVATE USE</field>
    __hiddenField: 0,
    increment: function(){
        /// <summary>Increments a private variable</summary>
        __hiddenField++;
    }
}

不可能是一个完全可能的答案,如果您知道这实际上是不可能的,就会被接受。

【问题讨论】:

    标签: javascript visual-studio-2008 documentation javascript-intellisense


    【解决方案1】:

    我认为要将函数/字段设为私有,您应该在其名称前添加一个连字符。

    _increment: function(){
        /// <summary>Increments a private variable</summary>
        __hiddenField++;
    }
    

    【讨论】:

      【解决方案2】:

      我不确定如何从智能感知中隐藏它,但您始终可以使用闭包来完全隐藏变量,如下所示:

      (function(){
          var hiddenField = 0;
      
          // not sure how you're defining your object; 
          // I'll just assume a global variable
          window.something = {
              increment: function(){
                  /// <summary>Increments a private variable</summary>
                  hiddenField++;
              }
          }
      })();
      

      这会围绕您的定义创建一个匿名函数,因此 window.something.increment() 将起作用,并且“hiddenField”是真正隐藏的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 2012-02-28
        • 2011-10-10
        • 2011-03-15
        相关资源
        最近更新 更多