11

我已经看到了以下两个变量初始化来创建一个空的 jQuery 对象。使用其中一个是否有重大区别或优势?

var a = $({});
var b = $();
4

2 回答 2

27

如果您的意思是$([]),那是从前 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 对象,请使用$().

于 2012-10-31T01:22:36.610 回答
3

我想你的意思是:

var a = $([]); //<- array not object
var b = $();

没有我知道的优势,第一个是旧版本,从 1.4 开始你可以使用更高版本。

于 2012-10-31T01:20:48.313 回答