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
, _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?
它已被垃圾回收,因为不再有任何内容引用 variable/value。您的构造函数似乎没有导出仍然能够访问 buf
.
的闭包
does it create a memory leak?
不,为什么会这样?标准垃圾回收规则也适用于构造函数。
我目前正在通过原型方法构建对象。这个对象不需要用户构建方法,虽然工厂方法在这里可能更好,但我更喜欢原型设计。
我想知道 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?
它已被垃圾回收,因为不再有任何内容引用 variable/value。您的构造函数似乎没有导出仍然能够访问 buf
.
does it create a memory leak?
不,为什么会这样?标准垃圾回收规则也适用于构造函数。