变量名中包含美元符号是什么意思?

问题描述 投票:0回答:3

有人可以解释一下在 jQuery 中定义变量时使用 $ 和不使用 $ 之间的区别吗?对性能有影响吗?

var $someVar = $("a");
var someVar = $("a");

还有,调用变量有和没有

$(someVar)
有什么区别,例如:

$(someVar).html();
someVar.html();
javascript jquery
3个回答
4
投票

在您的第一个片段中,这两者之间没有区别。只是一个“notification

”,这个变量保存着一个
wrappet set
的jQuery对象,这是一些开发人员常用的。

在第二个片段中,您实际上在做两件不同的事情。您将

someVar

 包装到 jQuery 对象中,然后访问 
jQuery method
 (html())。
在此示例中,
someVar
 可以包含 
DOM element
selector string
,如“#some_element_id”。

另一行假设

someVar

 已经是一个 jQuery 对象,否则此调用将失败。


2
投票
没有性能差异,只是一个标识符。经验丰富的作者经常使用

$foo

 来引用 jquery 对象,以免将它们与复杂脚本中的非 jquery 对象混淆。

至于

$()

包装,您可以引用一个DOMElement并将其包装在jQuery中,例如

var e = document.body; $(e).hide()

如果我们尝试

e.hide()

,则不会有定义的方法,因为 body 元素没有该方法,它仅由 jQuery 原型链提供。


2
投票

$somevar

somevar
 都是一样的。在 jquery 变量之前使用 $ 是一种约定,这样您就知道它是一个 jquery 包装的对象。
(顺便说一句,在 javascript 中引入 $ 是为了区分机器生成的代码和人类编写的代码)
然而,$(somevar) 和 somevar 是完全不同的。 $(somevar) -> 您正在调用 Jquery 函数并将其传递给 somevar 。您也可以将其读作 Jquery(somevar) 。因此,如果 somevar 引用 dom id ,则 dom 对象将被 jquery 包装并返回。

© www.soinside.com 2019 - 2024. All rights reserved.