我对回调有疑问。我有一个对象,其中一个函数用作setTimeout回调,该对象可以在回调触发之前删除。节点会在超时发生时知道不会调用它,还是保留引用并调用它?
答案 0 :(得分:0)
进行了一些测试,看起来节点保持对对象的引用并触发回调。
答案 1 :(得分:-1)
“删除”后,对象不一定会被删除,您只是删除了它的引用。该方法仍然可以调用。
> cat test.js
var a = {
method: function() {
console.log('a' + a.property)
},
property: '1'
}
setTimeout(a.method, 1000);
delete a;
> node test.js
a1