prototype inheritance in javascript super method code example
Example 1: prototype inheritance javascript
function Animal (name, energy) {
this.name = name
this.energy = energy
}
Animal.prototype.eat = function (amount) {
console.log(`${this.name} is eating.`)
this.energy += amount
}
Animal.prototype.sleep = function (length) {
console.log(`${this.name} is sleeping.`)
this.energy += length
}
Animal.prototype.play = function (length) {
console.log(`${this.name} is playing.`)
this.energy -= length
}
function Dog (name, energy, breed) {
Animal.call(this, name, energy)
this.breed = breed
}
Dog.prototype = Object.create(Animal.prototype)
Dog.prototype.bark = function () {
console.log('Woof Woof!')
this.energy -= .1
}
const charlie = new Dog('Charlie', 10, 'Goldendoodle')
console.log(charlie.constructor)
Example 2: override function javascript class
class newArray extends Array{
push(value) {
console.log(`pushed ${value} on to array`)
super.push(value)
}
}
var array = new newArray
array.push('new Value')
Example 3: javascript prototype inheritance example
function Person(first, last, age, gender, interests) {
this.name = {
first,
last
};
this.age = age;
this.gender = gender;
this.interests = interests;
};
function Teacher(first, last, age, gender, interests, subject) {
Person.call(this, first, last, age, gender, interests);
this.subject = subject;
}
Example 4: setting property to method in child class javascript
class Person{
constructor(name,place){
this.name = name;
this.place = place;
}
Full(){
console.log(`I am ${this.name} from ${this.place}`);
}
};
class Student extends Person{
constructor(name,place,age){
super(name,place);
this.age = age;
}
Detail(){
this.area = "Adayar";
console.log(`I'm ${this.name} from ${this.place}, area ${this.area} & I'm ${this.age} years old`);
}
Detailed(){
console.log(`${this.area}`);
}
};
var student1 = new Student("Surya", "Chenai", 25);
student1;
student1.Full();
student1.Detail();
student1.Detailed();