我的问题是我使用setInterval()和clearInterval(),并且想在不同的函数中分别使用它们,这是我的代码:
function Mesh(name,material)
{
this.name=name;
this.material=material;
this.interval=null;
this.blink=this.blink.bind(this);
this.stopBlink=this.stopBlink.bind(this);
}
Mesh.prototype.blink = function(obj,delay,box)
{
var material=this.material;
this.interval=(function()
{
var Toggle=true
return setInterval(function()
{
if(Toggle)
changeMaterial(obj,box);
else
{
changeMaterial(obj,material);
}
Toggle=!Toggle;
}
, delay);
})();
console.log(this.interval);
}
Mesh.prototype.stopBlink=function(obj,duration)
{
var material=this.material;
setTimeout(function()
{
obj.material=material;
clearInterval(this.interval);
},duration);
}
问题是,当我使用stair = new Mesh(name1,material1)并调用stair.blink(obj,delay,box)起作用时,我创建了fan = new Mesh(name2,material2),它可以正常工作,但是如果我想使用stair.stopBlink(obj,duration)在楼梯上停止眨眼,它停止风扇而不是楼梯,由于间隔可变,它将使用最后一个被叫(这里我将风扇称为最后一个,所以它停止了风扇的眨眼尽管我试图停止楼梯对象的闪烁)。(当我使用interval作为var时,所有这些都
所以我尝试将interval用作函数的内部变量,但是在这里blink()起作用,当我调用stopBlink()根本不起作用时,我试图在stopBlink()内对其进行控制台,这是未定义的>
请帮助
最好的问候