オブジェクトプロトタイププロパティとハンターXハンター
7869 ワード
最近、私は継承とプロトタイプチェーンについて学びました.あなたが私のポストを読んだならば、あなたはすでに私がJavaScriptの基礎に飛び込んでいるということを知っています.あなたは、おそらく私が巨大なハンターXハンターファンであるということを知りません.私は実際にハンターのプロトタイプオブジェクトを作成することによって私の学習を置く.
関数コンストラクタは、特定の種類のオブジェクトの青写真として見ることができます.規約は、関数のコンストラクターを大文字で命名することです.たとえば、私の関数のコンストラクタは、ハンターを作成する青写真です.
すべてのハンターが2つのパラメータを取ると宣言します
私は、一度機能をつくって、各々のハンターが
を含める必要はありません
私は非常に簡単な方法で複雑なトピックをたくさんカバー.何かが意味をなさないならば、出てください.This article by Tim Kadlec 大いに助けた.
読書ありがとう!
関数コンストラクタ
関数コンストラクタは、特定の種類のオブジェクトの青写真として見ることができます.規約は、関数のコンストラクターを大文字で命名することです.たとえば、私の関数のコンストラクタは、ハンターを作成する青写真です.
すべてのハンターが2つのパラメータを取ると宣言します
name
and hatsu
(または身近な人のための特別な力).それぞれのハンターはpowerLevel
100.今、我々のハンターに若干の能力を加えましょう.const Hunter = function(name, hatsu) {
this.name = name;
this.hatsu = hatsu;
this.powerLevel = 100;
};
Hunter.prototype.charge = function(number) {
if (typeof number !== 'number') {
console.log('Please enter a number');
return;
}
this.powerLevel += (100 * number);
console.log(this.name + ' power level at ' + this.powerLevel);
};
Hunter.prototype.useHatsu = function() {
if (this.powerLevel >= 300) {
console.log(this.name + ' used ' + this.hatsu);
this.powerLevel = 0;
} else {
console.log(this.name + ' needs to charge.');
};
};
を使用してprototype
メソッドを格納するプロパティcharge
and useHatsu
すべての将来のハンターは、能力をチャージして、彼らの力を使う能力を持ちます.これらの関数をコンストラクタで宣言できます.それは、作成された各々の新しいハンターがそれ自身であるということを意味しますcharge
and useHatsu
メソッド.それは少し過剰です、私は私がちょうどそれにアクセスするために各々のハンターを必要とする方法を所有するために各々のハンターを必要としません.私は、一度機能をつくって、各々のハンターが
Hunter.prototype
プロパティ.const gon = new Hunter("Gon", "Ja-Jan-Ken");
const killua = new Hunter("Killua", "Lightningbolt");
console.log(gon)
console.log(killua)
killua.charge(3);
gon.charge(1);
killua.useHatsu();
gon.useHatsu();
あなたがまだコンソールにコードを入力していない場合は、先に行くと、すべてを追加します.作成したオブジェクトを見てください.彼らは、彼らがいることに気づくでしょうname
, hatsu
, and powerLevel
予想通り.作成した関数がオブジェクトに格納されていないことがわかります.それらはその中に蓄えられる___proto___
プロパティ.を含める必要はありません
prototype
プロトタイプのチェーンのため、関数呼び出しのプロパティ.JavaScriptは、オブジェクトの独自のメソッドとプロパティをチェックします.何も見つからなければ、オブジェクトのプロトタイプをチェックします.それは、それがプロトタイプチェーンの最上位に達するまで、このプロセスを続けますnull
.私は非常に簡単な方法で複雑なトピックをたくさんカバー.何かが意味をなさないならば、出てください.This article by Tim Kadlec 大いに助けた.
読書ありがとう!
Reference
この問題について(オブジェクトプロトタイププロパティとハンターXハンター), 我々は、より多くの情報をここで見つけました https://dev.to/javila35/object-prototype-property-and-hunter-x-hunter-39fkテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol