Javascript NoClickDelay.destroy()方法或;如何删除NoClickDelay()函数;

Javascript NoClickDelay.destroy()方法或;如何删除NoClickDelay()函数;,javascript,mobile,dom-events,touch-event,Javascript,Mobile,Dom Events,Touch Event,据我所知,它无法“撤销”其功能 例如: var a = new NoClickDelay('body'); console.log(a) //returns NoClickDelay delete a; console.log(a) //still returns NoClickDelay a = null; //a is now empty, but NoClickDelay still exists 我知道我可以解除onTouchStart、onTouchMove和onTouchEnd

据我所知,它无法“撤销”其功能

例如:

var a = new NoClickDelay('body');
console.log(a)
//returns NoClickDelay

delete a;
console.log(a)
//still returns NoClickDelay

a = null;
//a is now empty, but NoClickDelay still exists
我知道我可以解除
onTouchStart
onTouchMove
onTouchEnd
事件的绑定,但是如何从内存和DOM中删除实例化的
new NoClickDelay()

var Obj = {};
Obj.a = new NoClickDelay('body');
console.log(a);
delete Obj.a;
console.log(a);
小提琴:

不能删除变量

删除y;//返回false(删除不影响变量 (姓名)

资料来源:

编辑: 在删除事件侦听器方面,请尝试添加此函数并运行它

function undoNoClickDelay(el) {
    if( window.Touch ) {
            el.removeEventListener('touchstart', this, false);
            el.removeEventListener('touchmove', this, false);
            el.removeEventListener('touchend', this, false);
            delete Obj.a;
    }
}

你试过使用delete关键字吗<代码>删除延迟我不想删除整个原型,因为在整个页面中调用了该类的多个实例,并且(正如上面添加的代码所解释的那样),在
delete
Close之后,任何变量存储的实例似乎仍然存在,但不存在。这确实会删除
a
,但
NoClickDelay
的功能仍然存在。因此,最好的方法似乎是简单地逐个撤销其每个命令,并将对象存储在可删除的对象中。做得不错。可以只做removeEventListeners(),我相信可以全部删除,但不确定是否要将其他事件绑定到这些元素。(在身体上,可能会)