当前位置: 首页 > 面试题库 >

检查对象是否为jQuery对象

齐招
2023-03-14
问题内容

有没有一种快速的方法来检查对象是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')


问题答案:

您可以使用instanceof运算符:

if (obj instanceof jQuery){
    console.log('object is jQuery');
}

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

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

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



 类似资料:
  • 问题内容: 我试图得到: 在我自己的脚本中,我以前只是使用它,因为我从来不需要作为属性: 因此,对于第二个对象,我想出了以下方法作为一种快速解决方案-大部分都能奏效。;) 问题是,这取决于浏览器是否强制执行只读属性,而并非所有人都这样做。 有没有好的替代品? 问题答案: 这可能很有趣: 它是DOM Level2的一部分。 更新2 :这是我在自己的库中实现它的方式:(以前的代码在Chrome中不起作

  • 本文向大家介绍JavaScript / Typescript对象是否为空检查?,包括了JavaScript / Typescript对象是否为空检查?的使用技巧和注意事项,需要的朋友参考一下 对于null检查,可以使用!健康)状况。 示例 以下是代码- 要运行以上程序,您需要使用以下命令- 在这里,我的文件名为demo305.js。 输出结果 这将产生以下输出-

  • 问题内容: 我很惊讶地发现这种情况总是成立的: 似乎无论最初是什么类型,它都将转换为相应类的实例。是否存在确定对象是否可靠的方法? 问题答案: 更新 我在下面显示的代码被报告在发行版本中不起作用。(请参阅下面的Paul Cantrell的评论。) 对于我的“据我测试”的道歉过于有限。 当我找到关于此的更多信息时,我将更新此答案。 我不确定我们是否可以在下一个Beta(或GM或已发布的版本…)中看到

  • 我想检查一个对象是否有新的子对象。我的意思是我有一个带有x嵌套对象的对象,但是如果主对象有新对象,我会检查它。有什么现有的解决方案来检查这个问题吗? 我的目标是如果对象有新项目,则调用函数。每次数组更改时,此代码都会调用该函数。也当一些项目被删除。这部分功能是错误的。有办法修好它吗?

  • 问题内容: 我有一个需要循环通过的嵌套JSON对象,每个键的值可以是String,JSON数组或另一个JSON对象。根据对象的类型,我需要执行不同的操作。有什么方法可以检查对象的类型以查看它是String,JSON对象还是JSON数组? 我尝试使用和,但似乎都没有用,因为这将为JSON对象和数组都返回一个对象,并且在我这样做时给出错误。 更具体地说,在将JSON解析为JS对象之后,有什么方法可以检

  • 问题内容: 我的服务器端代码返回一个值,该值成功时为json对象,失败时为字符串’false’。现在如何检查返回的值是否为json对象? 问题答案: 如果字符串是JSON,则jQuery.parseJSON()应该返回类型为“对象”的对象,因此您只需使用以下命令检查类型