给定一个通过网络进行通信的对象:
function MyObj {
var self = this;
self.query = function(callback) {
self.callback = callback;
networking.on('close', self.process_data);
// the networking will take some time
}
self.finish = function(data) {
// called with data from networking
var result = // ... lengthy data processing
self.callback(result); // finished processing, use callback
}
}
然后使用如下:
function do() {
var o = new MyObj();
o.query(some_global_callback);
}
很明显,函数do
将在对象o
有时间调用回调之前完成。
在do
完成和o
完成回调之后 会发生什么??将o
垃圾收集并且其回调从未执行过吗?