繁体   English   中英

Javascript原型方法和未使用的变量

[英]Javascript Prototype method and un-used variables

我目前正在通过原型方法构建对象。 该对象不需要用户构建的方法,虽然工厂方法在这里可能更好,但我更喜欢原型。

我想知道var buf = data._raw; 返回对象后, buf会发生什么情况,它是否会导致内存泄漏或被垃圾回收,还是会发生其他事情?

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是对象类型的int表示形式, _raw是缓冲区,而length是缓冲区长度。

var Identification = require('./Identification');

function main(){
  var identification = new Identification(data);
}

main();

这是不好的做法吗? 我将来会开放我的代码来解决问题吗?

谢谢。

对象返回后, buf会怎样?

它是垃圾收集的,因为没有任何东西再引用变量/值了。 您的构造函数似乎没有导出仍然可以访问buf闭包。

它会导致内存泄漏吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM