我已经看到以下两个变量初始化来创建一个空的jQuery对象。使用一个比另一个有重大区别或优势吗?
var a = $({});
var b = $();
答案 0 :(得分:27)
如果您的意思是$([])
,那就是过去调用$()
实际上等同于$(document)
(这是一个未记录的功能)的东西。所以要获得一个空集,你必须调用$([])
。这是changed in jQuery 1.4; $()
的文档功能现在返回一个空集。
将对象传递给jQuery构造函数是一个完全不同的野兽。 $({})
不会创建空的jQuery对象。它创建一个长度为1的jQuery对象;所选项目是对象本身。
将JS对象传递给jQuery构造函数可以让您利用jQuery的更深奥的功能:在(非DOM)对象上绑定和触发事件。
例如:
var obj = { some: 'stuff' };
$(obj).on('someevent', function() { ... });
$(obj).trigger('someevent');
无论哪种方式,如果您的目标是实例化一个新的空jQuery对象,请使用$()
。
答案 1 :(得分:3)
我认为你的意思是:
var a = $([]); //<- array not object
var b = $();
我所知道的没有优势,第一个是旧版本,因为1.4你可以使用后者。