ホームページ >ウェブフロントエンド >jsチュートリアル >JSプロトタイプオブジェクト 人気の「歌唱メソッド」_JavaScriptスキル

JSプロトタイプオブジェクト 人気の「歌唱メソッド」_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 17:45:081022ブラウズ
1. プロトタイプ オブジェクトに関する重要な知識ポイント

まず、非常に重要な知識ポイントを一言で言うと、すべてのオブジェクトにはプロトタイプ オブジェクトがあるということを知っておく必要があります。 🎜> 2. 他の言語の理解の比較

プロトタイプ オブジェクトは、他の言語のクラスでは静的プロパティおよび静的メソッドです。原則として、クラスにはオブジェクトが 1 つだけ存在します。メモリ。

3. メモリ内のイメージ マップ:

まず、js オブジェクトを生成する前に、コンストラクターを作成する必要があります (わかりません)。


コードをコピー コードは次のとおりです: function person (name_, age_) {
this.name = name_;
this.age = age_;
}



新しいオブジェクトが必要です。ここには、「Zhang San」、「Li Lei」、「Han Meimei」という 3 つの新しい (人物) オブジェクトがあります。これらは同じコンストラクターからのものです。 人物:




各オブジェクトには独自の名前と経過時間のメモリがあり、ここで新しいオブジェクトの数、名前と経過時間のメモリのブロック数が割り当てられます。 これを見ると、比較的簡単に理解できるはずです。次に、次のように、attribute.location 属性を追加します。




コードをコピーします コードは次のとおりです。 function person(name_, age_) {
this.name = name_;
this.age = age_; .location = "Earth";
}


現時点でのメモリ状況は次のとおりです。



ここでは、3 つのオブジェクトがすべて「地球」の記憶空間を持っていることがわかります。ここで 3 人が地球の記憶を持っていることがわかります。

これを見て、地球が 1 つだけ必要で、誰もがそれを使用できます。共有スペースがオブジェクトである場合、それはです。いわゆるプロトタイプ オブジェクトですか?

はい、それです。プロトタイプ オブジェクトの最も重要な機能は、定数とメソッドをそれ自体に分割することです。あなた自身のオブジェクトは次のとおりです:






4. コードレベルからプロトタイプオブジェクトを導入します。 上の図はメモリ内のオブジェクトです。コードレベル 上からの操作



コードをコピー
コードは次のとおりです: 関数 人(name_, age_) { this.name = name_; this.location = "Earth";
// 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.location) は "Earth" を出力します
alert(zhangsan.killperson() ) は "kill" を出力します


上記はプロトタイプ オブジェクトに関する私の個人的な理解です。皆様のお役に立てれば幸いです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。