問題タブ [prototypal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
33 参照

javascript - プロトタイプ継承について

プロトタイプが等しいかどうかを確認するとObject.prototype:

最初の 2 つが戻りtrue、3 つ目が戻りますfalse

なぜこうなった?

0 投票する
1 に答える
32 参照

javascript - Javascript - Object.create: 私の理解は正しいですか?

プロトタイプがどのように機能するかを完全に理解しようとしています。

これがプロトタイプの私の定義です。

すべてのオブジェクト (ベース オブジェクトを除く) が持つ組み込みプロパティで、別のオブジェクトのコピーである「proto{}」オブジェクトを参照および参照します。このオブジェクトのプロパティとメソッドは、元のオブジェクトに見つからない場合に参照できます。

あれは正しいですか?特に、「別のオブジェクトのコピーである」部分について疑問に思っています。つまり、JS エンジンは、オブジェクト A のプロトタイプ プロパティが参照用に指すメモリ空間にオブジェクト B の格納されたコピーを作成します。

今私の質問についてObject.create

私の理解では、このメソッドは、それが使用されているオブジェクトのプロトタイプ (またはオブジェクト自体?) を作成し、渡された別のオブジェクトのプロパティとメソッドを継承 (IOW、渡されたオブジェクトのコピーを参照) します。

上記のコードでは、johnオブジェクトが作成され、そのプロトタイプ プロパティは、オブジェクトのメソッドとプロパティを持つ作成されたオブジェクトを指していPersonますか? 別の言い方をすればObject.create、オブジェクトのコピーを作成Personし、のプロトタイプ プロパティがjohn指すメモリ空間に配置します。これは何が起こっているのかについての正しい理解ですか?

もしそうなら、オブジェクト(「人」)のコピーが作成される理由であり、プロトタイプがjohn指しているPersonオブジェクトの小道具/メソッドを上書きせずにプロパティとメソッドの値を変更できるためです。john継承に関連付けられたプロトタイプ オブジェクト?

私はこれを分解して理解できるようにし、概念を過度に複雑にしないようにしています。

これは、私の現在の理解をさらに説明するために描いた絵です。

ここに画像の説明を入力