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