Prototypes, objects
In the conventional JS there are no class instead we have prototypes. Like the class, prototype inherits the properties including the methods and the variables declared in the class. We can create the new instance of the object when ever it is necessary by , Object.create(PrototypeName); (we can give the value for the constructor as well)
Creation and initialising Prototype
Section titled “Creation and initialising Prototype”var Human = function() { this.canWalk = true; this.canSpeak = true; //
};
Person.prototype.greet = function() { if (this.canSpeak) { // checks whether this prototype has instance of speak this.name = "Steve" console.log('Hi, I am ' + this.name); } else{ console.log('Sorry i can not speak'); }};The prototype can be instantiated like this
obj = Object.create(Person.prototype);ob.greet();We can pass value for the constructor and make the boolean true and false based on the requirement.
Detailed Explanation
var Human = function() { this.canSpeak = true;};// Basic greet function which will greet based on the canSpeak flagHuman.prototype.greet = function() { if (this.canSpeak) { console.log('Hi, I am ' + this.name); }};
var Student = function(name, title) { Human.call(this); // Instantiating the Human object and getting the memebers of the class this.name = name; // inherting the name from the human class this.title = title; // getting the title from the called function};
Student.prototype = Object.create(Human.prototype);Student.prototype.constructor = Student;
Student.prototype.greet = function() { if (this.canSpeak) { console.log('Hi, I am ' + this.name + ', the ' + this.title); }};
var Customer = function(name) { Human.call(this); // inherting from the base class this.name = name;};
Customer.prototype = Object.create(Human.prototype); // creating the objectCustomer.prototype.constructor = Customer;
var bill = new Student('Billy', 'Teacher');var carter = new Customer('Carter');var andy = new Student('Andy', 'Bill');var virat = new Customer('Virat');
bill.greet();// Hi, I am Bob, the Teacher
carter.greet();// Hi, I am Carter
andy.greet();// Hi, I am Andy, the Bill
virat.greet();