gpt4 book ai didi

javascript - jQuery 的 .isWindow 方法?

转载 作者:数据小太阳 更新时间:2023-10-29 05:30:38 24 4
gpt4 key购买 nike

我试图从 jQuery 的动画功能中了解我能做什么,但最终遇到了我不了解的各种内部功能,并最终落在了 isWindow 上。 isWindow 的代码检查对象是否具有属性 setInterval,否则返回 false。

当然,任何对象都可以拥有属性 setInterval 而不是窗口,尽管几乎必须蓄意破坏 jQuery 的功能才能拥有具有该确切属性名称的对象,我可以想象一些可能是无意的合理情况。

有没有更好的方法来检查一个对象是否是一个窗口对象?他们不能使用类似于

obj.setInterval && obj.setInterval.toString() == 'function setIternval(){ [native code] }

我知道内部函数的 toString 的返回不会成为所有浏览器的标准,但 jQuery 的作者似乎对这些跨浏览器的差异有很好的理解。我也知道这也不是一个万无一失的方法,因为有人可以很容易地覆盖 toString 方法来返回相同的字符串,但这仍然可以防止对象被弄错的问题一个窗口。

我不会问我是否认为 isWindow 仅用于 jQuery 的内部对象,但它是 isPlainObject 的一部分,它在 中使用.extend,可用于外部对象。

最佳答案

关于:

function isWindow(obj) {
var toString = Object.prototype.toString.call(obj);
return toString == '[object global]' || toString == '[object Window]' || toString == '[object DOMWindow]';
}

似乎适用于 Chrome、Firefox、Opera、IE 和 Safari(最新版本)

关于javascript - jQuery 的 .isWindow 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9576283/

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