2

最近、以下のように関数を定義するかどうかというチュートリアルを読みました。

function Animal() { }

表面的には、このコードは Animal という関数を作成しているように見えます。しかし、JavaScript の場合、完全な真実はもう少し複雑です。このコードを実行すると、実際には 2 つのオブジェクトが作成されます。Animal と呼ばれる最初のオブジェクトは、コンストラクター関数そのものです。Animal.prototype と呼ばれる 2 番目のオブジェクトには、Animal.prototype.constructor と呼ばれるプロパティがあり、Animal を指します。Animal には、そのプロトタイプである Animal.prototype を指すプロパティがあります。

しかし、私はそれについてほとんど混乱していませんFunction.オブジェクトはどうですか?オブジェクトの用途は何Animalですか?

そして、以下のようなコードを書いた場合。

var test= new Function();

testChromeのDeveloperツールで変数を調べました。testとは何の関係もないことがわかりましたFunction。誰かが理由を教えてもらえますか? ありがとう。

ここに画像の説明を入力

更新しました

下図はコード実行時のオブジェクト関係ですので、ご確認ください。私の理解が間違っている場合。私を修正してください。ありがとう。

私の理解が間違っている場合。 私を修正してください。 ありがとう。

4

1 に答える 1