【发布时间】:2013-02-16 02:10:58
【问题描述】:
它们只是 node.js 官方文档的几行代码。
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
我认为客户端对象有对回调的引用,回调有对客户端对象的闭包引用。那是对的吗?如果是,为什么鼓励这样做?
【问题讨论】:
-
client在回调中由于范围而引用了原始客户端,因此除非您重新定义它,否则它不能引用任何其他client。这不会导致任何范围界定问题,因此可以安全使用。唯一的另一种方法是将客户端作为参数传递(您无法控制框架传递的内容)或在另一个范围内定义客户端,例如window,这可能会引入更多问题并且没有改进。
标签: javascript node.js memory-leaks closures