js class inheritance code example

Example 1: javascript class inheritance

// Class Inheritance in JavaScript
class Mammal {
	constructor(name) {
		this.name = name;
	}
	eats() {
		return `${this.name} eats Food`;
	}
}

class Dog extends Mammal {
	constructor(name, owner) {
		super(name);
		this.owner = owner;
	}
	eats() {
		return `${this.name} eats Chicken`;
	}
}

let myDog = new Dog("Spot", "John");
console.log(myDog.eats()); // Spot eats chicken

Example 2: override function javascript class

class newArray extends Array{
    push(value) {
        //execute any logic require before pushing value onto array
        console.log(`pushed ${value} on to array`)
        super.push(value)
    }    
}

var array = new newArray

array.push('new Value')

Example 3: setting property to method in child class javascript

// setting a new property in child class that extends parent or whatever

//PARENT CLASS
class Person{
  constructor(name,place){
  this.name = name; //property
  this.place = place; //property
  }
  Full(){ //method
    console.log(`I am ${this.name} from ${this.place}`);
  }
};

//CHILD CLASS EXTENDING PARENT
class Student extends Person{
  constructor(name,place,age){
    super(name,place);
    this.age = age; // always call super before accessing ("this")
  }
  Detail(){ //method
    this.area = "Adayar"; //NEW PROPERTY IN our CHILD METHOD
    console.log(`I'm ${this.name} from ${this.place}, area ${this.area} & I'm ${this.age} years old`);
  }
 Detailed(){ //method
    console.log(`${this.area}`); // it can still access in other method inside it's own child class
 }
};

var student1 = new Student("Surya", "Chenai", 25);
student1;
student1.Full();
student1.Detail();
student1.Detailed();

Example 4: javascript inherit function

function inherit(c, p) {
        Object.defineProperty(c, 'prototype', {
            value: Object.assign(c.prototype, p.prototype),
            writable: true,
            enumerable: false
        });

        Object.defineProperty(c.prototype, 'constructor', {
            value: c,
            writable: true,
            enumerable: false
        });
    }
// Or if you want multiple inheritance

function _inherit(c, ...p) {
        p.forEach(item => {
            Object.defineProperty(c, 'prototype', {
                value: Object.assign(c.prototype, item.prototype),
                writable: true,
                enumerable: false
            });
        })

        Object.defineProperty(c.prototype, 'constructor', {
            value: c,
            writable: true,
            enumerable: false
        });
    }

Tags:

Java Example