Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么要创建jQuery对象变量?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么要创建jQuery对象变量?

Javascript 为什么要创建jQuery对象变量?,javascript,jquery,Javascript,Jquery,我看到了很多jQuery示例,它们做了如下操作 var $element = $('#element'); $element.foo... 而不仅仅是打字 $('#element').foo... 我也意识到,如果你正在使用 $element 很多,但是那时候呢 $element 只叫一两次?为什么有些开发人员在这些实例中将其声明为jQuery对象变量?浏览器处理是否也更高效?它防止从另一个脚本重写变量通常这样做是为了避免重新包装元素或重新查询页面以查找选择器 例如在单击事件中 $('.cl

我看到了很多jQuery示例,它们做了如下操作

var $element = $('#element');
$element.foo...
而不仅仅是打字

$('#element').foo...
我也意识到,如果你正在使用 $element 很多,但是那时候呢 $element
只叫一两次?为什么有些开发人员在这些实例中将其声明为jQuery对象变量?浏览器处理是否也更高效?

它防止从另一个脚本重写变量

通常这样做是为了避免重新包装元素或重新查询页面以查找选择器

例如在单击事件中

$('.className').click(function(){
 var $this = $(this);
 callSomeHelper($this);
 $this.hide();
 if( $this.data("placement") == "somePlacement" ){
  //some logic
 }
});
真正的节约是当它引用一组元素时

var $allSides = $('.side');
现在回到click事件中,您可以引用它,而无需重新查询

$('.top').click(function(){
   var door = $allSides.find(':visible');
});

显然还有更深入的例子,但这两个是存储变量的主要情况。

如果只使用一次或两次,那么没有任何真正的改进。每次缩小它时,可能会节省6-7个字节,这是很重要的。为什么只使用一次呢?谁知道呢。你得问问开发商。为什么只有两次?这是一个判断,取决于情况。代码是否在循环中?在一个快速调用的事件处理程序中?@cookiemonster-虽然这是一个判断调用,但对同一对象重新查询DOM两次并不是一个好的判断。在只使用一次时对其进行缓存没有任何好处,但在多次使用(即使只有两次)时对其进行缓存总是更有效,因为它可以防止对同一对象多次查询DOM。@adeneo-“通常避免微优化”。。。你和我来自非常非常不同的角度。