すべての関数がFunction
コンストラクター経由で作成されるわけではありません。指定された項目がその特定の関数instanceof
によって作成されたかどうかを明確にチェックします。
複数のウィンドウを扱う場合、ブラウザー環境でも同様の効果が得られます。foo
つまり、ウィンドウ Aに機能がある場合:
function foo(arg) {
if (arg instanceof Array) {
// It's an array, do something
}
}
...そして、それを呼び出す別のウィンドウB にコードがあります。
opener.foo([]);
...では、それが配列であることfoo
に気付くと思いますよね? arg
しかし、配列ではありますが、ウィンドウ内のコンストラクターによって作成されたものではないarg
ためArray
、そうではありませんfoo
。
ここに何があるかを理解することについての詳細:何を言う?
もしあなたがこのことに興味を持っているなら (あなたがそうであるように)、仕様を読むことに勝るものはありません。はい、散文は...乾いています...そして用語は....密集しています...しかし、根底にある仕組みについて学べば学ぶほど、ますます面白くなります。
トピック__proto__
外 :非標準であり、すべての JavaScript 実装でサポートされていないことに注意してください。