, , , :
var EmployeeA = EmployeeScope();
var EmployeeB = EmployeeScope();
EmployeeA === EmployeeB
EmployeeA.prototype === EmployeeB.prototype
var emp1 = new EmployeeA("John");
var emp2 = new EmployeeB("Amit");
Object.getPrototypeOf(emp1) === EmployeeA.prototype
Object.getPrototypeOf(emp2) === EmployeeB.prototype
EmployeeScope ( + ) , . , , name :
var emp3 = new EmployeeB("Dirk");
Object.getPrototypeOf(emp2) === Object.getPrototypeOf(emp3)
emp2.getName()
, Manager . "scope" :
function Employee(newName) {
this.name = newName;
}
Employee.prototype.getName = function() {
return this.name
};
Employee.prototype.setName = function(newName) {
this.name = newName
};
function Manager(newName, newDept) {
Employee.call(this, newName);
this.dept = newDept;
}
Manager.prototype = Object.create(Employee.prototype);
Manager.prototype.constructor = Manager;
Manager.prototype.getDept = function() {
return this.dept
};
Manager.prototype.setDept = function(newDept) {
this.dept = newDept
};
var emp1 = new Employee("John");
var emp2 = new Employee("Amit");
var emp3 = new Employee("Dirk");
var mgr1 = new Manager("Robert", "Data");
var mgr2 = new Manager("Alex", "Science");
Object.getPrototypeOf(emp1) === Employee.prototype
Object.getPrototypeOf(emp2) === Employee.prototype
Object.getPrototypeOf(emp3) === Employee.prototype
Object.getPrototypeOf(mgr1) === Manager.prototype
Object.getPrototypeOf(mgr2) === Manager.prototype