検索

ホームページ  >  に質問  >  本文

javascript - オブジェクトと関数のプロトタイプチェーン問題

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

仅有的幸福仅有的幸福2831日前563

全員に返信(1)返信します

  • 滿天的星座

    滿天的星座2017-05-19 10:13:54

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

    リーリー

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

    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
  • キャンセル返事