为了账号安全,请及时绑定邮箱和手机立即绑定

检查对象是否为jQuery对象

检查对象是否为jQuery对象

30秒到达战场 2019-10-14 10:56:57
有没有一种快速的方法来检查对象是jQuery对象还是本机JavaScript对象?例:var o = {};var e = $('#element');function doStuff(o) {    if (o.selector) {        console.log('object is jQuery');    }}doStuff(o);doStuff(e);显然,上面的代码有效,但并不安全。您可能会向o对象添加选择器键,并获得相同的结果。有没有更好的方法来确保该对象实际上是jQuery对象?符合 (typeof obj == 'jquery')
查看完整描述

3 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

您可以使用instanceof运算符:


obj instanceof jQuery

说明:jQuery函数(又名$)被实现为构造函数。构造函数将以new前缀调用。


当您调用时$(foo),内部jQuery将此转换为new jQuery(foo)1。JavaScript继续this在构造函数内部进行初始化,以指向的新实例jQuery,并将其属性设置为在jQuery.prototype(aka jQuery.fn)上找到的属性。因此,您得到的new对象instanceof jQuery是true。


1 实际上是new jQuery.prototype.init(foo):构造函数逻辑已被卸载到另一个名为的构造函数中init,但是概念是相同的。


查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 525 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信