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

标签 javascript node.js prototype

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

我想知道 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, _raw, length 其中 def 是对象类型的 int 表示,_raw是缓冲区,length是缓冲区长度。

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

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

main();

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

谢谢。

最佳答案

What happens to buf once the object is returned?

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

does it create a memory leak?

不,为什么会这样?标准垃圾回收规则也适用于构造函数。

关于Javascript 原型(prototype)方法和未使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30247307/

相关文章:

node.js - 是否可以使用 bot 框架 v4 获取 Microsoft-Teams 内的 PowerBI 报告屏幕截图或报告?

javascript - 从循环外中断循环

原型(prototype)中具有数字属性的 Javascript 对象

javascript - ../path 不是重定向页面

javascript - 固定位置在 IE 10 与 Bootstrap Modal 中的 Chrome 和 Firefox 中表现不同

javascript - Graphql 和 Relay 可扩展性

javascript - NodeJS PTY 计时命令

javascript - JSON 到 HTML - 我被正式难住了

javascript - 如何对齐文本以适应使用 Top : 50px; 向下移动的 Div

javascript - 有没有办法使用Javascript的Array.map函数返回对象+添加到它的新键值对