美元符号

Mar*_*ark 41 jquery

我有这样简单的东西:

$(selector).append("somestuff");
Run Code Online (Sandbox Code Playgroud)

但是因为我要重用选择器,所以我将其缓存:

var $selector = $(selector);
Run Code Online (Sandbox Code Playgroud)

所以我最终得到:

$selector.append("somestuff");
Run Code Online (Sandbox Code Playgroud)

我的问题是,我应该这样做,还是应该这样做:

var selector = $(selector);
selector.append("somestuff");
Run Code Online (Sandbox Code Playgroud)

尝试任何一个,两个都有效.哪种方法是正确的,为什么?是$$selector不必要的,因为jQuery对象已经在申报$(selector)


编辑

谢谢你的回答.看起来很简单也很清楚.尽管如此,我是否应该$在变量中使用似乎存在分歧.每个人投票给答案都很好.:)

Ric*_*dle 47

$ 只是一个名称 - JavaScript中的名称可以包含美元符号,并且可以只包含一个美元符号.

你是否在你的名字中使用美元符号与jQuery无关 - 除了jQuery定义一个名为的函数之外,没有什么特别的美元符号$.


小智 32

我已经看到它做到了两个方面.你所要做的就是创建一个名为'$ selector'的变量,所以它们在功能上是等价的.关于它的好处是它确实使它们很容易被选为jQuery对象.


Ben*_*use 21

现金标志只是jQuery功能的别名.使用$启动变量名称对该变量没有影响.

然而,习惯上,特别是在jQuery插件开发中,使用已经用jQuery包装的变量和现金符号,所以你知道你可以调用jQuery方法,而不必包装它们.

  • +1.变量的$前缀表示它是一个jQuery对象,您可以调用所有jQuery方法,而无需考虑是否需要将变量传递给jQuery方法. (7认同)

the*_*edz 11

RichieHindle是正确的.扩大:

Javascript变量允许'$'字符.例如,您可以拥有以下内容:

var $i = 1;
var i = 1;
Run Code Online (Sandbox Code Playgroud)

i和$ i都具有相同的值,并且两者都是完全合法的变量名称.

jQuery将自己(jQuery对象)分配给'$',因为传统上,这就是Javascript框架为选择器所做的事情.除了jQuery赋予它之外,'$'没有固有的含义.


mko*_*yak 9

我喜欢为我的所有jQuery对象名添加前缀,$以便我知道它实际上是一个jQuery对象,而不是DOM引用.

这是一个很好的命名约定.