很基本的问题。
我想知道 jQuery 或原始 JavaScript 是否足够聪明,可以预编译,或者在函数或选择器中缓存变量表达式,如果没有,是否有任何理由阻止他们这样做?
例如
$('#whatever').on('click', function(){
$('#template').click();
});
var n = 0;
for(var i = 0; i < 20; i++){
n = 1 + 1;
$('#whatever').click();
}
console.log(n);
我们要在 dom 中搜索 20 次$('#template')
元素吗?或者库/引擎是否足够智能以存储指针?
而且,我们是要计算机 1+1 2 次,还是该表达式被缓存或预编译?
显然,这些都是非常愚蠢的例子,但他们明白了这一点。
是的,没有人会(希望)n = 1 + 1
在他们的代码中包含这一行。
我们可以将代码更改为 `var template = $('#template'); 在点击处理程序之前,如果它本身不处理它,但我想知道我们/为什么我们必须这样做?