在jQuery中定义变量

时间:2010-06-30 05:38:56

标签: javascript jquery

有人可以解释在jQuery中定义变量时使用$的区别。它对性能有影响吗?

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

另外,使用和不使用$(someVar)调用变量的区别是什么?例如:

$(someVar).html();
someVar.html();

3 个答案:

答案 0 :(得分:4)

在您的第一个代码段中,这两者之间存在差异。它只是一个“notification”,这个变量持有wrappet set个jQuery对象,这是一些开发人员常用的。

在你的第二个片段中,你实际上做了两件不同的事情。您将someVar包装到jQuery对象中,然后访问jQuery method(html())。 在此示例中,someVar可以包含DOM elementselector string,例如“#some_element_id”。

另一行假设someVar已经是jQuery对象,否则此调用将失败。

答案 1 :(得分:2)

没有性能差异,它只是一个标识符。 $foo经常被经验丰富的作者用来引用jquery对象,以免在复杂的脚本中将它们与非jquery对象混淆。

对于$()包装,您可以引用DOMElement并将其包装在jQuery中,例如

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

如果我们尝试e.hide(),则没有已定义的方法,因为body元素没有该方法,它只由jQuery原型链提供。

答案 2 :(得分:2)

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