gpt4 book ai didi

javascript - fn instanceof 正则表达式

转载 作者:行者123 更新时间:2023-11-29 15:33:09 26 4
gpt4 key购买 nike

我正盯着 Angular 源代码(就像我不时做的那样),我很惊讶地看到以下检查:

if (isFunction(fn) && !(fn instanceof RegExp)) {

} else {
// in IE, native methods are not functions so they cannot be bound (note: they don't need to be)
}

它是 angular.bind 实现的一部分。可以找到完整的代码片段 here .

这是 isFunction 的实现(如果您想知道的话):

function isFunction(value) {return typeof value === 'function';}

现在,让我添加这个,以防万一:

我知道 instanceof 运算符的作用。它检查是否可以在从特定对象开始的原型(prototype)链上找到函数的原型(prototype)(在本例中为 RegExp.prototype)。

现在,我的问题是:

你能给我一个例子,上面的代码会跟在 else 子句之后吗?我对表达式的第二部分感兴趣,我知道您可以通过不提供函数来使该条​​件失败。

该评论警告我 IE 中的奇怪行为,但我无法重现它。

最佳答案

在 IE7 中:

typeof window.item // => 'string'

但是(在 IE7 中):

window.item(0) // => [object] { onbeforeunload: null, ...}

在 IE9 中:

typeof window.item // => 'function'

在 IE11 中:

typeof window.item // => 'string'

关于javascript - fn instanceof 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32460435/

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