如何在Javascript中的Constructor.prototype中定义本地函数

时间:2016-11-08 12:51:05

标签: javascript

嗨大家我在一个场景中面临困难,因为我无法在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()不应该工作]

1 个答案:

答案 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);