1. プロトタイプ オブジェクトに関する重要な知識ポイント
まず、非常に重要な知識ポイントを一言で言うと、すべてのオブジェクトにはプロトタイプ オブジェクトがあるということを知っておく必要があります。 🎜> 2. 他の言語の理解の比較
プロトタイプ オブジェクトは、他の言語のクラスでは静的プロパティおよび静的メソッドです。原則として、クラスにはオブジェクトが 1 つだけ存在します。メモリ。
3. メモリ内のイメージ マップ:
まず、js オブジェクトを生成する前に、コンストラクターを作成する必要があります (わかりません)。
this.name = name_;
this.age = age_;
}
新しいオブジェクトが必要です。ここには、「Zhang San」、「Li Lei」、「Han Meimei」という 3 つの新しい (人物) オブジェクトがあります。これらは同じコンストラクターからのものです。 人物:
各オブジェクトには独自の名前と経過時間のメモリがあり、ここで新しいオブジェクトの数、名前と経過時間のメモリのブロック数が割り当てられます。 これを見ると、比較的簡単に理解できるはずです。次に、次のように、attribute.location 属性を追加します。
this.name = name_;
this.age = age_; .location = "Earth";
}
現時点でのメモリ状況は次のとおりです。
ここでは、3 つのオブジェクトがすべて「地球」の記憶空間を持っていることがわかります。ここで 3 人が地球の記憶を持っていることがわかります。
これを見て、地球が 1 つだけ必要で、誰もがそれを使用できます。共有スペースがオブジェクトである場合、それはです。いわゆるプロトタイプ オブジェクトですか?
はい、それです。プロトタイプ オブジェクトの最も重要な機能は、定数とメソッドをそれ自体に分割することです。あなた自身のオブジェクトは次のとおりです:
4. コードレベルからプロトタイプオブジェクトを導入します。 上の図はメモリ内のオブジェクトです。コードレベル 上からの操作
コードをコピー
// 3 つの特定のオブジェクト
var zhangsan = 新しい人("zhangsan", 21);
var lilei = 新しい人("lilei", 21);
var hanmeimei = 新しい人("hanmeimei", 21);そのプロトタイプ オブジェクトは
person.prototype.location = "Earth";
person.prototype.killperson = function() {
return "Kill">};
ここで問題が発生します。プロトタイプ オブジェクトはわかっていますが、プロトタイプ オブジェクトのプロパティにアクセスするにはどうすればよいでしょうか。つまり、どのようにして位置を取得し、killperson メソッドを使用するのでしょうか。
を参照してください。 >
コードをコピーします
コードは次のとおりです。
alert(zhangsan.location); (zhangsan.killperson());
この方法でアクセスできますが、オブジェクト属性で location と killperson が定義されていないことが前提となります。そうしないと、元のオブジェクトが上書きされてしまいます。つまり、
zhangsan.location まず、zhangsan オブジェクト自体を確認します。画像から、Zhang San には名前、年齢、およびプロトタイプのポインター属性があることがわかります。場所が見つからない場合は、元のオブジェクトの検索が続けられます。 location 属性が見つかるかどうかを確認します。見つかった場合は、元のオブジェクトのプロパティが呼び出されます。
alert(zhangsan.killperson() ) は "kill" を出力します
上記はプロトタイプ オブジェクトに関する私の個人的な理解です。皆様のお役に立てれば幸いです。