Javascript原型方法和未使用的variables

我目前通过原型方法构build对象。 这个对象不需要用户build立的方法,虽然工厂的方法可能会更好,但我对原型更加适应。

我想知道关于var buf = data._raw; 。 一旦对象被返回, buf会发生什么情况?它是否会创build内存泄漏,或者是垃圾回收还是发生其他事情?

 var Identification = function(data){ var buf = data._raw; this.def = data.def; this.master = buf.readUInt8(9); this.version = buf.readUInt8(10); //more reading from a buffer... } module.exports = Identification; 

我通过传入由3个属性组成的data在另一个模块中调用这个函数。 def_rawlength其中def是对象types的int表示, _raw是缓冲区, length是缓冲区长度。

 var Identification = require('./Identification'); function main(){ var identification = new Identification(data); } main(); 

这是不好的做法? 我是否会在未来开放我的代码?

谢谢。

一旦对象返回, buf会发生什么?

这是垃圾收集,因为什么都没有参考variables/值了。 您的构造函数似乎不导出仍然能够访问buf闭包。

它会造成内存泄漏吗?

不,为什么呢? 标准的垃圾收集规则也适用于构造函数。