就性能和可读性而言,最好是命名变量而不是使用$(this)
吗?
一个例子是
$(".element").click(function() {
var elem = $(this);
//Examples
elem.addClass("example");
console.log( elem.attr("id") );
}):
答案 0 :(得分:0)
是的。由于$(this)
本质上是一个相当昂贵的函数调用触发一个Dom-Search,所以每次调用$(this)
时都会重复它,而var elem = $(this);
你有一次函数调用并将结果存储在一个变量中
实际上,将选择器传递给函数要比传递像this
这样的DOM元素要贵得多。因此缓存this
只会产生非常微小的影响,而缓存像$("#foo[name|='bar']")
这样的东西真的很重要。
我更喜欢将$
添加到变量名称之前,这样很明显你在这里有一个jQery对象。
$this = $(this);
现在$this
在可读性方面没有明显的缺点,同时具有性能优势。此外,它可以通过压缩器缩小为单个字母变量,而$(this)
则不能。
答案 1 :(得分:0)
无论jQuery中的搜索效率如何,我个人都希望缓存对保持不变的变量的引用。无论如何,引用变量更快。