通过构造函数错误警告对象

时间:2016-05-31 02:10:40

标签: javascript function object

我通常可以在十分钟内找到自己的错误,但我似乎无法确定我在这里做错了什么。有人可以告诉我为什么我无法获得这些功能的警报吗?

var Emp = function( vEname, vSal ) {

  this.Ename = vEname;
  this.Sal = vSal;

  this.getAnnSal: function() {
    return this.Sal * 12;
  }

  this.getQuarterSal: function() {
    return this.Sal * 3;
  }

};

var oEmp = new Emp("Jag", 2300);

alert("Annual salary: " + oEmp.getAnnSal());
alert("Quarter Salary: " + oEmp.getQuarterSal());

1 个答案:

答案 0 :(得分:0)

this.getAnnSal: function() 

应该是

this.getAnnSal = function() { ... }

但是,这会将函数添加到对象的每个实例中。

如果您要拥有多个实例,则应使用原型 - 如下所示:

var Emp = function (vEname, vSal) {
  this.Ename = vEname;
  this.Sal = vSal;
}

Emp.prototype.getAnnSal = function() {
  return this.Sal * 12;
}

通过这种方式,该功能可用于Emp的所有实例,但不能重复。