2

今日、IEとChromewindow.close で表示して入力すると、奇妙な動作が見られました。どちらも機能していると思いました。function close() { [native code] }function () { [native code] }

しかし、私がそれをタイプしたとき、IE8とクロームtypeof(window.close)で表示されました。'object''function'

なぜこの異なる動作ですか?JavaScriptで変数の型をチェックするために使用できる方法は何ですか?この種の動作を示す他の関数はありますか?

ありがとう

4

1 に答える 1

4

あなたが持っているべきもの(すなわち)をここで探してください"function"

そして、ここでは読みにくいが公式のECMAScriptリファレンスについて説明します。

IE8は単に標準に準拠していません。それは本当に唯一の出来事ではありません。

変数がIE8の関数であるかどうかをテストする方法について質問、私はそれを自分でテストすることはできませんが、これはおそらくうまくいきます:

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