0

我有一个关于回调的问题。我有一个对象,其中一个函数用作 setTimeout 回调,并且可以在回调触发之前删除该对象。当超时发生时节点会知道不调用它还是会保留引用并无论如何调用它?

4

2 回答 2

0

做了一些测试,看起来节点保持对对象的引用并触发回调。

于 2012-05-23T17:32:14.007 回答
-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
于 2012-05-21T20:18:12.777 回答