嗨大家我在一个场景中面临困难,因为我无法在Manager.prototype中定义本地功能。请在下面找到详细信息..
我有一个Constructor Function Employee。
function Employee(id){
this.id = id;
}
Employee.prototype.getID = function(){
return this.id;
}
var mark = new Employee(123);
我再次拥有一个Manager Constructor
function Manager(managerOf){
this.managerOf = managerOf;
}
Manager.prototype = Object.create(Employee.prototype);
Manager.prototype.getManagerOf = function(){
return this.managerOf;
}
var john = new Manager(mark);
现在我想定义一个函数calcSalary(),它只能从getManagerOf()方法&amp ;; 不是来自外部。 [john.calcSalary()不应该工作]
答案 0 :(得分:3)
您可以使用自动执行功能隐藏它。
var Manager = (function() {
function calcSalary() {}
function Manager(managerOf){
this.managerOf = managerOf;
}
Manager.prototype = Object.create(Employee.prototype);
Manager.prototype.getManagerOf = function(){
// call calcSalary
return this.managerOf;
}
return Manager;
}());
var john = new Manager(mark);