问题描述
我有这个:
class Animal {
constructor() {
Animate();
function Animate() {
if (true) { // What do change here for the object to self-check if it still exists?
console.log('1');
requestAnimationFrame(Animate);
}
}
}
}
var dog = new Animal();
setTimeout(function () {
dog = undefined;
// The Animate() should no longer be called at this point.
},3000);
如果类的实例不再“存在”,我该如何修改 Animate()函数以停止再次调用自身??
感谢您的所有回复。就像下面已经说过的那样,似乎我需要实现某种“销毁”方法来处理和管理Animal类的实例的Animate()函数调用。并不是我真正想要的,我希望实例能够自我感知并知道何时不再需要它。
不确定这是否有助于澄清以下一些问题,但我们可以:
var dog1 = new Animal();
var dog2 = new Animal();
var dog3 = new Animal();
每个实例将运行自己的Animate()
。如果实例设置为未定义(例如,也可以设置为null),则不应再调用Animate()
调用。这里的目标是使对象实例具有自我意识,不再需要它。创建destroy方法将意味着我们在外部进行调用,因此该实例不是自觉的。
如果使用jQuery,则可以在类内添加$(this)(0).length来检测对象是否仍然存在。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)