First, we need to know prototype. We can think prototype as a template. In javascript, everything is an object, every object has its own prototype.
A simple inheritance in javascript:
//constructor method
function Person(name, sex) { this.name = name; this.sex = sex; }
//define Person prototype
Person.prototype = { getName: function() { return this.name; }, getSex: function() { return this.sex; }
}
//define an Employee constructor method
function Employee(name, sex, employeeID) { this.name = name; this.sex = sex; this.employeeID = employeeID; } // Make Employee.prototype link to an instance of Person // The Person instance can call the methods in Person prototype, so Employee's instances can access methods and properties of Person prototype as well. Employee.prototype = new Person(); Employee.prototype.getEmployeeID = function() { return this.employeeID; };
However, there are some problems with such a simple inheritance.
1. When we create the Employee constructor method and protoype, we also create a Person instance. That is not reasonable.
2. Employee's constructor method cannot access its parent/super class Person's constructor method.
3. Employee's constructor is pointing to the wrong place.
We will see how to address all these problems in my next blog.
No comments:
Post a Comment