我在下面的语句中偶然遇到了$(undefined)
,其中params
是一个对象:
var $this = $(params._this) || $(this);
这不起作用,因为$(params._this)
是一个jQuery对象,并且总是被评估为true
。
有趣的是,我不确定如何检查它。它不是空对象(即$.isEmptyObject($(undefined)) == false
),也不是函数或“普通对象”(即$.isPlainObject()
)。
我最后将声明修改为以下内容:
var $this = (params._this == undefined) ? $(params._this) : $(this);
我的问题是,有没有办法“评估”(不确定使用哪个词)$(undefined)
?对此有用吗?
答案 0 :(得分:7)
var $this = $(params._this || this);
答案 1 :(得分:2)
$(undefined)
只是一个空的jQuery对象;它相当于$()
。有时它会在常用习语$(document)
中使用,而不是$(document).ready(...)
。
答案 2 :(得分:0)
在你的情况下,最合适的方式似乎是DanC所说的,但你可以通过检查它的选择器来检查未定义的jquery对象:
$(undefined).selector == ''
在你的情况下:
var $this = $(params._this).selector != '' ? $(params._this) : $(this);