#100DaysOfCode の 6 日目!
6318 ワード
今日の進捗🏍
継承、DRY (Don't Repeat Yourself)、スーパータイプ (親) に取り組みました.継承と DRY の利点は、コードを書き直さなくても済むようになることと、アプリケーションのコードをあまり書かないことにあります.このようにして、対処する問題 (バグ) が少なくなり、よりクリーンなコードを記述できます.コードが成長し続けるにつれて、コードが非常に複雑になる可能性があることは容易に想像できます.したがって、それを縮小する方法を見つける方がよいでしょう.
私が学んだこと
オブジェクト、プロトタイプ、継承についてさらに学びました.私が取り組んだ例は、継承がどのように機能し、その利点を説明してくれることを願っています.
では、オブジェクト指向プログラミングの
inheritance
は何ですか?継承により、あるクラスが別のクラスの属性とメソッドを継承 (または取得) できます.プロパティとメソッドが継承されるクラスは、Parent
クラスと呼ばれます.以下の例は、2 つのオブジェクト コンストラクターを示しており、どちらにも
drive
メソッドという共通点があります.function Car(){}
Car.prototype = {
constructor: Car,
drive: () => {
console.log("Vroom vroom")
}
}
function Motorcycle() {}
Motorcycle.prototype = {
constructor: Motorcycle,
drive: () => {
console.log("Vroom vroom")
}
}
両方の車両を駆動して Vroom vroom という音を出すことができることがわかっているので、DRY 原則を使用してコードを簡素化および削減し、
Vehicle
というスーパータイプ (または親) を作成し、Car と Motorcycle の両方から drive メソッドを削除して配置することができます.車両でそれ.それでは、作成してみましょう.
//child object
function Car(){}
Car.prototype = {
constructor: Car,
drive: () => {
console.log("Vroom vroom")
}
}
//child object
function Motorcycle() {}
Motorcycle.prototype = {
constructor: Motorcycle,
drive: () => {
console.log("Vroom vroom")
}
}
// parent object
function Vehicle(){
}
Vehicle.prototype = {
constructor: Vehicle,
drive: () => {
console.log("Vroom vroom")
}
}
継承
スーパータイプを作成し、DRY 原則を使用して、継承を適用したいと考えています.つまり、スーパータイプ (この場合は
Vehicle
オブジェクト) から継承する必要があります.メソッドを使用するだけで、 Animal の新しいインスタンスを作成できますObject.create(obj)
.これにより、新しいオブジェクトが作成され、新しいオブジェクトのプロトタイプとして obj
が設定されます.これがその外観です.
Car.prototype = Object.create(Vehicle.prototype)
let honda = new Car();
console.log(honda.drive());
//output: "Vroom vroom"
サブタイプ (または子)
Car
は、Vehicle のインスタンスになりました.新しい Car
オブジェクトを作成し、変数 honda に格納する場合. honda
は Vehicle
のすべてのプロパティを継承するようになったため、 drive()
メソッドを実行できます.Reference
この問題について(#100DaysOfCode の 6 日目!), 我々は、より多くの情報をここで見つけました https://dev.to/cfalucho/day-6-of-100daysofcode-1m0mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol