Inheritance

In OO languages, we want to stay DRY and avoid getting WET. Inheritance allows us to avoid writing duplicate code. JavaScript classes give us this ability…

class Animal {
    constructor(name){
        this.name = name;
    }     speak(){
        return ${this.name} says “ugh!”;
    }
}  

We can use this animal class and extend (inherit) it to another object. Here’s an example…

class Primate extends Animal {} 
let gorilla = new Primate(‘Bongo’);
console.log(gorilla.name); 

The output would be “Bongo”. We extended the Animal class. This gives us access to all of the functionality within the Animal class. That is how we were able to get access to the name property. Notice that there is no constructor in the Primate class. What if we had one though?

class Primate extends Animal {
    constructor(){}
} 

It would return a reference error because the code is looking to the constructor within the Primate class and not the Animal class. We need it to look to the constructor in the Animal class first. We do this by using the “super” method…

class Primate extends Animal {
    constructor(){
        super();
    }
} 

Our code would still return a reference error because the property value we sent is not going all the way through to the Animal class constructor. We have to send the argument through the super function.

class Primate extends Animal {
    constructor(name){
        super(name);
    }
} 

What if we had a method with the same name in both the Primate class and the Animal class? The secondary class method runs, but if we want the Animal method to run, we use super again…

class Animal {
    constructor(name){
        this.name = name;
    }
    speak(){
        return ${this.name} says;
    } }
class Primate extends Animal {
    constructor(name){
        super(name);
    }
    speak(){
        return super.speak() + “ugh!”;
    } }
let gorilla = new Primate(‘Bongo’);
console.log(gorilla.speak()); 

The output would read, “Bongo says “ugh!”. So we can use inheritance to mix and match functionality and even override if we wish.

Happy Coding!

Clay Hess

More To Explore

computer, laptop, work place-2982270.jpg
Code

Unlocking Wireless Communication: A Dive into the Bluetooth API

Wireless communication has become an integral part of our daily lives, and Bluetooth technology is at the forefront of this revolution, enabling devices to exchange data over short distances and creating a world more interconnected than ever before. At the heart of this technology lies the Bluetooth Application Programming Interface (API), a powerful tool for developers looking to harness the capabilities of Bluetooth in their applications. In this blog post, we’ll explore what the Bluetooth API is, how it works, and the possibilities it opens up for innovation in wireless communication.

lighthouse, beacon, atlantic-8578318.jpg
Code

Understanding the Beacon API: Simplifying Asynchronous Data Transfers

In today’s data-driven world, web applications often need to send data back to the server. Traditionally, this has been done using AJAX requests or similar methods. However, these techniques can come with a cost, especially when dealing with data that needs to be sent during the unload phase of a document, such as tracking and diagnostic data. This is where the Beacon API shines by allowing developers to send data to a server more reliably and efficiently.

Share This Post

small_c_popup.png

Need help?

Let's have a chat...


Login

Jump Back In!

Here at Webolution Designs, we love to learn. This includes sharing things we have learned with you. 

Register

Begin Your Learning Journey Today!

Come back inside to continue your learning journey.