I want the prototype of these instances to be the same, but the following equality check evaluates to false.
var emp1 = new(EmployeeScope())("John");
var emp2 = new(EmployeeScope())("Amit");
var mgr1 = new(ManagerScope())("Robert", "Data");
var mgr2 = new(ManagerScope())("Alex", "Science");
emp1.getName() // John
emp2.getName() // Amit
mgr1.getDept() // Data
mgr2.getDept() // Science
mgr1.getName() // Robert
mgr2.getName() // Alex
emp1.__proto__ === emp2.__proto__ //false
mgr1.__proto__ === mgr2.__proto__ //false
function EmployeeScope() {
var name;
function Employee(newName) {
name = newName;
}
Employee.prototype.getName = function() {
return name
};
Employee.prototype.setName = function(newName) {
name = newName
};
return Employee;
}
function ManagerScope() {
var Employee = EmployeeScope();
var dept;
function Manager(newName, newDept) {
new Employee(newName);
dept = newDept;
}
Manager.prototype = Object.create(Employee.prototype);
Manager.prototype.constructor = Manager;
Manager.prototype.getDept = function() {
return dept
};
Manager.prototype.setDept = function(newDept) {
dept = newDept
};
return Manager;
}