2010-06-30 102 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