gpt4 book ai didi

javascript - 检查对象是否为 jQuery 对象

转载 作者:IT老高 更新时间:2023-10-28 11:13:53 25 4
gpt4 key购买 nike

有没有快速检查对象是 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 函数(又名$)实现为constructor function .构造函数将使用 new 前缀调用。

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


1其实是new jQuery.prototype.init(foo):构造器逻辑已经卸载到另一个构造器函数init,但概念是一样的。

关于javascript - 检查对象是否为 jQuery 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1853223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com