2

今天我在 IE 和chrome 中输入时看到了奇怪的行为window.close ,我认为两者都是函数。function close() { [native code] }function () { [native code] }

但是当我输入typeof(window.close)它时,它会'object'在 IE8 和'function'chrome 中显示。

为什么会有这种不同的行为?我可以使用哪些方法来检查 JavaScript 中变量的类型?是否有其他功能可以显示这种行为?

谢谢

4

1 回答 1

4

在这里寻找你应该拥有的东西(即"function")。

这里是可读性较差但官方的 ECMAScript 参考

IE 8 根本不符合规范。这真的不是唯一的事件。

关于如何测试变量是否是 IE8 上的函数?问题,我自己无法测试,但这可能有效:

var myvar = window.close;
var isfunc = Object.prototype.toString.call( myvar ) === '[object Function]';
于 2012-09-17T10:58:33.603 回答