在保留状态的同时调用原型方法

时间:2014-10-15 20:57:21

标签: javascript

我在这个原型方法中进行递归调用时遇到了麻烦。控制台打印:

count 1 (index):30
Uncaught ReferenceError: count is not defined 

相反,我需要它来打印:

count 1 (index):30
count 2 (index):30

...

var MyClass, mc;

MyClass = (function() {
  function MyClass() {
    this.count = 1;
  }

  MyClass.prototype.method = function() {
    console.log("count", this.count);
    this.count++;
    if (count === 2) {
      method();
    }
  };

  return MyClass;

})();

mc = new MyClass();

mc.method();

http://jsfiddle.net/audfmotf/

2 个答案:

答案 0 :(得分:1)

您在this内忘记了几个method

MyClass.prototype.method = function() {
  console.log("count", this.count);
  this.count++;
  if (this.count === 2) {
    this.method();
  }
};

答案 1 :(得分:0)

countthis.count不同。您的条件检查未定义的变量,而不是:

if (this.count === 2) {
      this.method();
    }