【发布时间】:2015-09-08 14:29:25
【问题描述】:
我盯着 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 实现的一部分。完整的 sn-p 可以在here找到。
这是isFunction 的实现(如果您想知道的话):
function isFunction(value) {return typeof value === 'function';}
现在,让我补充一下,以防万一:
我知道instanceof 运算符的作用。它检查是否可以在从特定对象开始的原型链上找到函数的原型(在本例中为 RegExp.prototype)。
现在,我的问题是:
你能给我一个例子,上面的代码将遵循 else 子句吗?我对表达式的第二部分感兴趣,我知道您可以通过不提供函数来使该条件失败。
该评论警告我 IE 中的一个奇怪行为,但我无法重现它。
【问题讨论】:
-
我有一个模糊的记忆(可能仅在 IE 中)RegExp 实例可以作为函数调用。但是,我用一些谷歌搜索找不到任何相关信息。
标签: javascript angularjs