1

如果可能的话,我想用来删除count和使用self.addOrbitTrap(). 目前测试我的代码是这样的:

Bbrot.prototype.findMSet = function() {
    //...code
    var self = this;
    canvasInterval = setInterval(function() {
        self.addOrbitTrap();
    }, 0);
}

var count = 0;
Bbrot.prototype.addOrbitTrap = function() {
    //...code
    if (count === 100) {
        // Call a different function. That's why I use count
    }
    count++;
}

编辑:更具体地说,count在我的代码中用于计算addOrbitTrap() 成功运行的次数(如果随机选择的像素是 Mandelbrot 集的一部分,它不会添加轨道陷阱)。在它运行了几次之后,我调用了一个不同的函数(从内部addOrbitTrap())。我宁愿不使用全局变量,因为count在其他任何地方都没有使用。

4

2 回答 2

1

只需在对象上创建变量并使用它。

Bbrot.prototype.count = 0;
Bbrot.prototype.findMSet = function() {
    //...code
    var self = this;
    canvasInterval = setInterval(function() {
        self.addOrbitTrap();
    }, 0);
}

Bbrot.prototype.addOrbitTrap = function() {
   if(ranSuccessful)
      this.count++;
}

Bbrot.prototype.someOtherFunc = function() {
    return this.count;
}
于 2013-08-27T02:29:52.023 回答
1

您可以将count其作为局部变量引入内部findMSet,然后传递给addOrbitTrap(); 在每个间隔,值都会增加:

Bbrot.prototype.findMSet = function() {
    //...code
    var self = this,
    count = 0;

    canvasInterval = setInterval(function() {
        self.addOrbitTrap(++count);
    }, 0);
}

处理值很简单:

Bbrot.prototype.addOrbitTrap = function(count) {
    //...code
    if (count === 100) {
        // Call a different function. That's why I use count
    }
}
于 2013-08-27T02:48:38.227 回答