我知道如果您多次使用它,您应该缓存选择器的结果.一个例子是:
- var $selected = $('.some-selected-element');
- process($selected);
- doStuff($selected);
但如果多次使用缓存$(this),是否有任何性能优势?
- $('.some-selector').hover(function () {
- if (!$(this).hasClass('some-other-class')) {
- $(this).addClass('another-class');
- }
- process($(this));
- }
解决方法
是的,性能提升,因为它可以防止jQuery解释你的选择器.
这是选择器的解释,以及你将绕过的东西. https://github.com/jquery/jquery/blob/master/src/core.js#L78-188
基本上,这部分
- if ( selector.nodeType ) {
- this.context = this[0] = selector;
- this.length = 1;
- return this;
- }