javascript - オブジェクトと関数のプロトタイプチェーン問題
仅有的幸福
仅有的幸福 2017-05-19 10:11:54
0
1
528

上記はブラウザでのテストです。混乱しています。このプロトタイプ チェーンをまったく理解できません。誰か説明してもらえませんか

仅有的幸福
仅有的幸福

全員に返信(1)
滿天的星座

オブジェクトは関数です。名前に惑わされないでください。まず頭の中でフォームを完成させてください

リーリー

どの関数 (コンストラクター) にもプロトタイプがあります。プロトタイプには特別なことは何もありません。それは単なるオブジェクトです。

Object.prototype は「Object { ... }」を出力します。この出力に惑わされず、Object.prototype 自体がそれであると考えないでください。出力内の「Object」は、単に Object.prototype の値が「Object」型のオブジェクトであることを意味します。

しかし同時に、JS の関数自体もオブジェクトであるため、Object は関数であるだけでなく、オブジェクトでもあります。すべてのオブジェクトはプロトタイプに基づいて「構築」(初期化)されます。

オブジェクトはいつオブジェクトとして構築されますか?

A: 定義されると、次のようになります:

リーリー

このとき、JSランタイムはfunction(){[ネイティブコード]}をプロトタイプとしてObjectの関数「オブジェクト」(インスタンス)を構築します。

この関数 () { [ネイティブコード] } とは何ですか?これは、JS のすべての関数の祖先です。

Object.__proto__.__proto__ はこの祖先関数のプロトタイプです。これは祖先なので、どうやってプロトタイプを持つことができますか?これは関数の祖先ではありますが、「オブジェクト」の祖先ではないことに注意してください。オブジェクトの祖先はこの「Object {__defineGetter__: ...}」です。

もう一度質問しましたが、オブジェクトが構築されると、祖先オブジェクトも構築されるはずですよね?祖先オブジェクトはすべてのものの起源であり、JS の言語設計者によって定義され、概念システムの出発点となります。

でも見た

リーリー

祖先オブジェクトが明確に構築されていませんか?そしてそれはオブジェクトから構築されていますか?

これは、JS 言語の設計者が概念的な一貫性を保つために、祖先オブジェクトのコンストラクターを Object に指定しただけです。

以前の祖先オブジェクトは何でしたか?

リーリー

タオは1人を産み、2人を産みます。
タオは無です。

itlr.cc

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート