开发者

Defining variables in jQuery

Can someone explain the difference between using a $ when defining variables in jQuery and not. Does it have any impact on performance?

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

Also, what is the difference in calling variables with and 开发者_JS百科without $(someVar) For example:

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


In your first snippet, there is no difference between those two. It's just a "notification" that this variable is holding a wrappet set of jQuery objects, which is commonly used by some developers.

In your second snippet you are actually doing two different things. You are wrapping someVar into a jQuery object and then access a jQuery method (html()). In this example someVar could contain a DOM element or a selector string like "#some_element_id".

The other line assumes that someVar already IS a jQuery object, otherwise this call would fail.


There is no performance difference, it's just an identifier. $foo is often used to refer to jquery objects by experienced authors so as to not confuse them with non-jquery objects in complex scripts.

As for the $() wrapping, you can reference a DOMElement and wrap it in jQuery, eg

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

If we tried e.hide() there would be no defined method as the body element doesn't have that method, it's only provided by the jQuery prototype chain.


$somevar and somevar are both the same . It is a convention to use a $ before a jquery variale so that you know that it is a jquery wrapped object .
( btw, $ were introduced in javascript to distinguish machine generated code for human written code )
However , $(somevar) and somevar are completely different . $(somevar) -> You are calling the Jquery function and passing it somevar . You can also read this as Jquery(somevar) . So if somevar is referring to a dom id , the dom object would be wrapped by jquery and returned .

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜