有没有一种快速的方法来检查对象是jQuery对象还是本机JavaScript对象?
例:
var o = {};
var e = $('#element');
function doStuff(o) {
if (o.selector) {
console.log('object is jQuery');
}
}
doStuff(o);
doStuff(e);
显然,上面的代码有效,但它并不安全。您可能会向对象添加选择键并获得相同的结果。有没有更好的方法来确保对象实际上是一个jQuery对象?o
符合的东西(typeof obj == 'jquery')
您可以使用运算符:instanceof
if (obj instanceof jQuery){
console.log('object is jQuery');
}
说明:该函数(aka)是作为构造函数实现的。构造函数将使用前缀进行调用。jQuery
$
new
当你调用时,jQuery在内部将其转换为1。JavaScript 继续在构造函数内部初始化以指向 的新实例,将其属性设置为在 (aka ) 上找到的属性。因此,你得到一个对象,其中 是 .$(foo)
new jQuery(foo)
this
jQuery
jQuery.prototype
jQuery.fn
new
instanceof jQuery
true
1它实际上是新的jQuery.prototype.init(foo):
构造函数逻辑已卸载到另一个名为init
的构造函数,但概念是相同的。
您也可以使用 .jquery 属性,如下所述:http://api.jquery.com/jquery-2/
var a = { what: "A regular JS object" },
b = $('body');
if ( a.jquery ) { // falsy, since it's undefined
alert(' a is a jQuery object! ');
}
if ( b.jquery ) { // truthy, since it's a string
alert(' b is a jQuery object! ');
}
查看实例运算符。
var isJqueryObject = obj instanceof jQuery
模板简介:该模板名称为【JavaScript检查对象是否为 jQuery 对象】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。