今天在检查Jasmine的源代码here时,我偶然发现了以下情况:
if (queueableFn.timeout) {
timeoutId = Function.prototype.apply.apply(self.timeout.setTimeout, [j$.getGlobal(), [function() {
var error = new Error('Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.');
onException(error);
next();
}, queueableFn.timeout()]]);
}
我对在apply
点击prototype.apply.apply
两次rename
的原因感兴趣
答案 0 :(得分:3)
commit that introduced this syntax解释了一切:
较旧的IE修复仍然不是绿色,但越来越近了。老年人概要 IE差异:
- 较早的IE没有对计时功能进行申请/调用
- 较旧的IE不允许应用虚假参数
- 较旧的IE不允许将onclick设置为未定义的值
- 较旧的IE在dom节点上没有文本属性