创建一个空的jQuery对象:$({})或$()

Joh*_*son 11 javascript jquery

我已经看到以下两个变量初始化来创建一个空的jQuery对象.使用一个比另一个有重大区别或优势吗?

var a = $({});
var b = $();
Run Code Online (Sandbox Code Playgroud)

jos*_*736 27

如果你的意思$([]),那就是过去那些呼叫$()实际上等同于$(document)(这是一个未记录的功能)的东西.所以要获得一个空集,你必须打电话$([]).这在jQuery 1.4有所改变 ; $()现在记录的功能是返回一个空集.

对象传递给jQuery构造函数是一个完全不同的野兽. $({})不会创建一个空的jQuery对象.它创建一个长度为1的jQuery对象; 所选项目是对象本身.

将JS对象传递给jQuery构造函数可以让您利用jQuery的更深奥的功能:绑定和触发(非DOM)对象上的事件.

例如:

var obj = { some: 'stuff' };

$(obj).on('someevent', function() { ... });

$(obj).trigger('someevent');
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,如果您的目标是实例化一个新的空jQuery对象,请使用$().