有人可以解释在jQuery中定义变量时使用$的区别。它对性能有影响吗?
var $someVar = $("a");
var someVar = $("a");
另外,使用和不使用$(someVar)调用变量的区别是什么?例如:
$(someVar).html();
someVar.html();
答案 0 :(得分:4)
在您的第一个代码段中,这两者之间存在无差异。它只是一个“notification
”,这个变量持有wrappet set
个jQuery对象,这是一些开发人员常用的。
在你的第二个片段中,你实际上做了两件不同的事情。您将someVar
包装到jQuery对象中,然后访问jQuery method
(html())。
在此示例中,someVar
可以包含DOM element
或selector 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)
$somevar
和somevar
都是相同的。在jquery变量之前使用$是一种约定,以便您知道它是一个jquery包装对象。
(顺便说一句,$是在javascript中引入来区分机器生成的代码为人类编写的代码)
但是,$(somevar)和somevar是完全不同的。
$(somevar) - >您正在调用Jquery函数并将其传递给somevar。您也可以将其读作Jquery(somevar)。因此,如果somevar指的是dom id,那么dom对象将被jquery包装并返回。