谷歌并没有帮助我解决这个问题。是否有任何理由不这样做:
var test = $('something');
$(test).stuff();
不要这样做:
var test = $('something');
test.stuff();
基本上,我发现当代码采用jQuery选择器格式时更易于阅读,尽管这并非必须。
两种方法似乎都可以正常工作。
谢谢!
谷歌并没有帮助我解决这个问题。是否有任何理由不这样做:
var test = $('something');
$(test).stuff();
不要这样做:
var test = $('something');
test.stuff();
基本上,我发现当代码采用jQuery选择器格式时更易于阅读,尽管这并非必须。
两种方法似乎都可以正常工作。
谢谢!
首先的那个方法可能会明显地较慢,具体取决于对象的大小。如果你只使用它几次,那么差别不会太大,但如果你经常使用它,也许可以采用这种流行的命名方案:
如果一个变量包含一个 jQuery 对象,请在变量名称前加上 $
。其他所有东西都按照通常的方式命名,而且不要使用 $ 命名任何不包含 jQuery 对象的变量。所以你应该这样写:
var $test = $('something');
$test.stuff();
如果你一直遵循同样的命名约定,这就清楚地表明test是一个jQuery对象。
var $this = $(this);
这种写法。 - Peter Ajtai$($('*'));
将克隆页面上的每个HTMLElement。我编辑了我的帖子,以使性能有了显着的差异。 - PaulThis is from the jQuery Docs:
Cloning jQuery Objects
When a jQuery object is passed to the $() function, a clone of the object is created. This new jQuery object references the same DOM elements as the initial one.
test.stuff()
更快。
这里有一些基准测试证据:http://jsperf.com/selector-variation-test
如果你采用第一种方式,没有任何好处,反而会影响性能。这是因为你正在"重新使用jQuery"。我建议你按照以下方式编写代码:var $test = $('something');
这样做非常清晰明了,变量是一个jQuery对象。
我不认为第一种方法是正确的,我认为一旦你声明了一个变量,它就只是那个名称。如果你想要类似的语法,你可以将变量声明为$test
,然后没问题。