Javascript 如何彻底消除

Javascript 如何彻底消除,javascript,design-patterns,Javascript,Design Patterns,请帮忙取下新的子弹 在对象之后,它从下至上在屏幕上移动。与y协调JavaScript使用垃圾收集器删除未使用的变量。我想说做这样的事情: delete this.x; delete this.y ; ... ; delete this; 当您要删除对象时(也要将其从任何其他外部数据结构中删除)。删除所有属性,然后删除对象本身。然后GC应该删除它。setInterval返回一个间隔标识符。当您不希望执行更多的间隔时,请使用clearInterval函数清除间隔 var int = setInte

请帮忙取下新的子弹


在对象之后,它从下至上在屏幕上移动。与y协调JavaScript使用垃圾收集器删除未使用的变量。我想说做这样的事情:

delete this.x; delete this.y ; ... ; delete this;

当您要删除对象时(也要将其从任何其他外部数据结构中删除)。删除所有属性,然后删除对象本身。然后GC应该删除它。

setInterval返回一个间隔标识符。当您不希望执行更多的间隔时,请使用clearInterval函数清除间隔

var int = setInterval(...);
...
clearInterval(int);
removeListener:函数(对象、evt、回调){
if(this.listeners.hasOwnProperty(evt)){
变量i,长度;
对于(i=0,length=this.listeners[evt].length;i

object[callback]
始终未定义,因此
this.listeners[evt].splice(i,1)无法执行

谢谢你提供的信息。但只要存在至少一个链接,垃圾收集器就不会销毁该对象。设计模式观察者中存在链接。也就是说,在我的stack方法中,observerable.removeListener(这是“makeMoveBullet”,“move”)无法直接删除项目符号,因为它是直接添加的:
var int = setInterval(...);
...
clearInterval(int);
removeListener: function (object, evt, callback) {
    if (this.listeners.hasOwnProperty(evt)) {
        var i, length;

        for (i = 0, length = this.listeners[evt].length; i < length; i += 1) {
            if (this.listeners[evt][i] === object[callback]) {
                this.listeners[evt].splice(i, 1);
            }
        }
    }
}