关于jquery:从以_开头的javascript变量可以推断出什么?

What can be inferred from javascript variables that begin with _?

本问题已经有最佳答案,请猛点这里访问。

从jquery.ui.autocomplete.js:

1
2
3
4
5
6
_renderMenu: function( ul, items ) {
    var self = this;
    $.each( items, function( index, item ) {
        self._renderItem( ul, item );
    });
},

javascript中的下划线前缀主要用于表示"私有"函数、属性等,即内部使用的函数和属性,不应从库/插件外部访问。

是的,正如nnnnnn所说,重要的词是"应该",如:

  • 它可以被访问-javascript不会做任何事情阻止你-它只是一个命名约定。
  • 实际上这样做是不明智的。一般来说,作者会有很好的理由表明内部使用。例如,属性的行为可能与您的想法不符(例如,缓存值在所有情况下都不可用);函数可能依赖于特定的内部状态或对该状态有副作用;等等。


通常,人们喜欢使用u来表示变量/函数是私有的,但在javascript中没有特殊的含义。


我不确定在哪里听到了这个消息,在我写这篇文章的时候寻找文档,但是我相信以下划线开头的var通常表示一个私有范围。

作为参考,它看起来像是其他程序员实现的C东西。


从技术上讲,这并不意味着什么,但通常作者打算让它成为受保护的(内部方法)