.constructor
はい、コンストラクター関数のprototype
オブジェクトのプロパティを手動で上書きできます。
constructor
プロパティが変更されたようです。function Array() { [native code] }
通常、おそらく の代わりに のようなものが表示され[ undefined ]
ます。
確認するためにできることの1つは...
console.log(typeof [].constructor);
それはあなたに与えるはずです"function"
。が表示される場合は"object"
、変更されています。
コンソール出力を信用しない
Firebugでテストしているようです。
原則として、コンソール ロギングを信頼しすぎないようにしてください。コンソールは環境へのアドオンであり、ログに記録するために与えられたものを解釈する必要があります。時々解釈が誤解を招きます。
奇妙な結果が得られた場合は、他のテストを実行してください...
console.log(Array); // [ undefined ] ...huh???
console.log([].constructor); // [ undefined ] ...huh???
typeof [].constructor; // Firebug still gives "function"
[].constructor === Array; // Firebug returns true
Array
したがって、Firebug が関数自体の奇妙な解釈を行ったとしても、それがまだ期待されるコンストラクターであるという事実は変わらないことがわかります。