好的,我想我知道这个问题的答案,需要确认一下。因此,我有一个选择器,它只被使用了一次,但是它被用在一个被多次调用的函数内部。从性能的角度来看,由于该选择器每次调用函数时都要重新搜索,因此缓存该选择器可能会更好(尽管略微)?
换句话说,如下所示...
function testFunction() {
alert($("#input").val())
}
$("#a").click(function() {
testFunction()
})
$("#b").click(function() {
testFunction()
})
$("#c").click(function() {
testFunction()
})
...不如以下方法执行效率高
input = $("#input")
function testFunction() {
alert(input.val())
}
$("#a").click(function() {
testFunction()
})
$("#b").click(function() {
testFunction()
})
$("#c").click(function() {
testFunction()
})
jQuery()
。你也可以通过检查使用每种模式调用函数所需的总时间来确定哪种方法更“高效”,请参见在 jQuery 中,使用 find() 而不是 > 选择器更有效吗?。没有基准测试,这个问题只是基于猜测,而不是事实。 - guest271314.click(testFunction)
。您正在定义3个具有相同签名的匿名函数。您应该使用1个命名函数并在所有处理程序中使用它。 - Rajesh