问题:在传递给函数时缓存 jquery 对象

Questions re: caching a jquery object when passing to a function?

本文关键字:缓存 jquery 对象 函数 问题      更新时间:2023-09-26

鉴于$thisObj在函数中被多次引用,在将$(this)传递给myFunction($thisObj)之前缓存$(this)会更好吗?

function myFunction($thisObj) {
  alert($thisObj.html());
  alert($thisObj.html());
  alert($thisObj.html());
}

应该用哪种方式来称呼它?

myFunction($(this));

var $obj = $(this);
myFunction($obj);

还是因为对象在传递给函数后已经"缓存"了,这无关紧要?这似乎是一个非常基本的问题,但我花了很多时间搜索这个话题,但没有明确的答案。

这在

myFunction()内部没有区别,因为该值仅在调用函数时计算一次,然后存储在$thisObj参数变量中。函数中的 conde 只使用 $thisObj 的内容,它不会重复计算$(this)

所以我更愿意调用该函数作为myFunction($(this)),因为它更切中要害,而不会创建不必要的额外变量。

使用额外的变量,

阅读代码的人会想知道该变量是否会在以后再次使用,从而使代码(稍微)更难理解。