2

可能重复:
“$(this)”的成本是多少?

就性能和可读性而言,命名变量而不是使用$(this)?

一个例子是

$(".element").click(function() {

    var elem = $(this);

    //Examples
    elem.addClass("example");
    console.log( elem.attr("id") );

}):
4

2 回答 2

0

是的。因为$(this)本质上是一个触发 Dom-Search 的非常昂贵的函数调用,所以每次调用$(this)时都会重复它,而var elem = $(this);函数调用一次并将结果存储在变量中。

实际上,将选择器传递给函数比传递 DOM 元素(如this. 所以缓存this只会产生很小的影响,而缓存类似的东西$("#foo[name|='bar']")真的很重要。

我更喜欢$在变量名前面加上 ,这样很明显你在这里有一个 jQery 对象。

$this = $(this);

现在$this从可读性的角度来看没有明显的缺点,同时具有性能优势。也可以通过压缩器将其缩小为单个字母变量,但$(this)不能。

于 2012-07-19T08:36:13.503 回答
0

我个人更喜欢缓存对保持不变的变量的引用,无论在 jQuery 中实现搜索的效率如何。无论如何,引用变量更快。

于 2012-07-19T08:36:38.623 回答