何时/为什么在使用jQuery时使用"$"为变量添加前缀?

elc*_*nrs 73 javascript variables jquery dollar-sign

可能重复:
为什么javascript变量以美元符号开头?

我看到人们在使用jQuery时在变量前面使用美元符号.这背后有什么理由吗?我错过了一些基本的东西,还是只是一种常见的做法?

Sco*_*ell 94

它是jQuery包装对象的常见引用.它使得阅读代码更容易知道哪些变量是jQuery包装的.

//Item has been "cached" for later use in the script as a jQuery object.
var $item = $(this);
Run Code Online (Sandbox Code Playgroud)

  • 在使用jQuery的上下文中,这不是过时的,而是常规练习. (20认同)
  • 常规不排除过时:关于匈牙利表示法和jQuery的优秀阅读:http://www.bennadel.com/blog/1778-Using-Variable-In-jQuery-Code-Is-Just-Hungarian-Notation.htm (13认同)
  • 在变量名前面使用$就是所谓的"匈牙利表示法",与执行int_count,arry_list或str_name没什么不同.这没有错,但很多人认为这是一种过时的命名变量方式. (10认同)
  • 我从来没有使用 - 或看过 - 在我编写的代码中使用的`$ item`符号,甚至表明它包含一个jQuery对象.但是,这种用法可能*[可以说是Apps Hungarian](http://en.wikipedia.org/wiki/Hungarian_notation#Systems_vs._Apps_Hungarian)作为变量"代表一个jQuery对象"而不是系统匈牙利语(通常被认为) "坏的").当然,由于缺少静态类型信息,该线路非常模糊. (5认同)
  • @Breakskater,一个赋值语句就像任何代码一样自我描述.X = Y ......别无他法.如果人们不必来这里参考如何做某事或什么意思,那么就没有必要使用Stack Overflow,参考书籍等等; 这一切都"显而易见". (4认同)
  • 一个意见 - 而不是基于事实的博客文章,其结论基本上表明它更倾向于使用骆驼案而不是匈牙利语.两者的混合实现了最大可读性. (2认同)
  • 事实上,这个人不得不继续使用stackoverflow来弄清楚$前缀意味着什么,这表明这是一个不好的做法.代码应该是自我描述的 (2认同)

loc*_*zak 43

对我来说,一个常见的做法是:

如果变量是私有的,我使用这样的下划线:

(function(){
     var _foo = "bar";
})()
Run Code Online (Sandbox Code Playgroud)

如果它是公开的我将不使用下划线:

var foo = "bar"
Run Code Online (Sandbox Code Playgroud)

如果它是一个jQuery选择器,我将使用$:

var $foo = $('bar');
//then you can access it like this
$foo.attr('id')
Run Code Online (Sandbox Code Playgroud)

它只是编码约定,它允许您快速引用变量稍后在代码中的类型.

  • 这似乎是一个很好的做法. (3认同)

san*_*mai 7

许多使用jQuery的人会在包含带有$的jQuery对象的变量前缀,以便很容易识别它们.考虑这个例子:

var $img = $(".someclass span.otherclass img");
/* somewhere later in the code */
$img.bind("click", function() {/*...*/});
Run Code Online (Sandbox Code Playgroud)