给定$ 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)),因为在不创建不必要的额外变量的情况下,它的意义更大。

有了额外的变量,读代码的人会想知道以后是否会再次使用该变量,从而使代码(略)变得难以理解。

关于javascript - 问题重新:传递给函数时缓存jquery对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27804415/

10-12 00:47