47 items
Inheritance and the super() Call
Code QuizComposition vs Inheritance Basics
QuizPatterns, Maintainability and Reusability
Slides / VideoWhen to Use Patterns (and When Not To)
Slides / VideoAnatomy of a Design Pattern
Slides / VideoWhat Are Design Principles
Slides / VideoThe Three Pattern Categories
Slides / VideoPatterns vs Principles vs Idioms
Slides / VideoOrigins of the Gang of Four
Slides / VideoWhy Design Patterns Matter
Slides / VideoWhat Is a Software Design Pattern
Slides / VideoAbstraction
FlashcardOrigin: Gang of Four
FlashcardYAGNI Principle
FlashcardEncapsulation
FlashcardPrinciple vs. Pattern
FlashcardSOLID Overview
FlashcardComposition Over Inheritance
FlashcardWhat Is an Anti-Pattern
FlashcardWhen to Use Patterns
FlashcardWhy Design Patterns Matter
FlashcardCoupling
FlashcardKISS Principle
FlashcardThree Pattern Categories
FlashcardDRY Principle
FlashcardSeparation of Concerns
FlashcardProgram to an Interface
FlashcardWhat Is a Design Pattern
FlashcardCohesion
FlashcardWhat Is a Design Pattern
QuizPatterns vs Principles
QuizPatterns vs Algorithms
QuizAnatomy of a Pattern
QuizOrigin of Design Patterns
QuizReusability and Maintainability
QuizCoupling and Cohesion
QuizWhat Is an Anti-Pattern
QuizWhy Use Design Patterns
QuizPolymorphism Basics
QuizEncapsulation Basics
QuizAbstraction in Design
QuizProgram to an Interface
QuizInheritance Basics
QuizThree Pattern Categories
QuizPatterns vs Architecture
QuizComposition Over Inheritance
QuizWhen to Apply Patterns
QuizInheritance and the super() Call
Spot the classic subclass constructor bug that breaks JavaScript inheritance.
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a sound`;
}
}
class Dog extends Animal {
constructor(name, breed) {
this.breed = breed;
super(name);
}
speak() {
return `${this.name} barks`;
}
}
const d = new Dog('Rex', 'Labrador');
console.log(d.speak());What is the bug in the Dog class, and how do you fix it?