2010-06-30 119 views
4

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

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

而且,是什么在呼唤变量与不$(someVar)例如区别:

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

回答

4

在你的第一个片段中,有没有这两者之间的区别。这只是一个“notification”,该变量持有jQuery对象的wrappet set,这是一些开发人员通常使用的。

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

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

2

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

对于$()包装,你可以引用一个DOMElement和jQuery的包装它,如

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

如果我们试图e.hide()就没有定义的方法为主体元素没有该方法,它只能由jQuery原型链提供。

2

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

+0

+1(btw,$是在javascript中引入的,用于区分机器生成的代码,用于编写人类代码) – 2010-06-30 08:16:04