最近、以下のように関数を定義するかどうかというチュートリアルを読みました。
function Animal() { }
表面的には、このコードは Animal という関数を作成しているように見えます。しかし、JavaScript の場合、完全な真実はもう少し複雑です。このコードを実行すると、実際には 2 つのオブジェクトが作成されます。Animal と呼ばれる最初のオブジェクトは、コンストラクター関数そのものです。Animal.prototype と呼ばれる 2 番目のオブジェクトには、Animal.prototype.constructor と呼ばれるプロパティがあり、Animal を指します。Animal には、そのプロトタイプである Animal.prototype を指すプロパティがあります。
しかし、私はそれについてほとんど混乱していませんFunction
.オブジェクトはどうですか?オブジェクトの用途は何Animal
ですか?
そして、以下のようなコードを書いた場合。
var test= new Function();
test
ChromeのDeveloperツールで変数を調べました。test
とは何の関係もないことがわかりましたFunction
。誰かが理由を教えてもらえますか? ありがとう。
更新しました
下図はコード実行時のオブジェクト関係ですので、ご確認ください。私の理解が間違っている場合。私を修正してください。ありがとう。