给定$ 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/