从JavaScript中的同一对象中的另一个方法调用方法时的范围

时间:2015-04-04 15:04:02

标签: javascript methods this

var Obj = function(par) {
  this.par = par;
};

Obj.prototype.addPar = function(num) {
  return num + this.par;
};

Obj.prototype.add3more = function(fun, num) {
  return fun(num) + 3;
};

Obj.prototype.callAdd3more = function(num) {
  return this.add3more(this.addPar, num);
};

var obj = new Obj(2);
console.log(obj.callAdd3more(1));

我希望上面的代码打印出5,但它会输出NaN。不知何故,addPar似乎被调用到了对象obj的范围之外,因为它被调用this.par时未定义。 我无法理解为什么或如何纠正代码。 非常感谢你的帮助。

0 个答案:

没有答案