对于IE,typeof window.close是不同的

时间:2012-09-17 10:57:29

标签: javascript internet-explorer

今天我看到了奇怪的行为  当我输入window.close在IE中显示function close() { [native code] }而在Chrome中显示function () { [native code] }时,我认为两者都有效。

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

为什么这种行为不同? 有什么方法可以用来检查JavaScript中变量的类型? 还有其他功能可以显示这种行为吗?

由于

1 个答案:

答案 0 :(得分:4)

查看here您应该拥有的内容(即"function")。

here用于不太可读但官方的ECMAScript参考。

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

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

var myvar = window.close;
var isfunc = Object.prototype.toString.call( myvar ) === '[object Function]';