JavaScript中,new 构造函数中的非this属性实际存放到哪了

【JavaScript中,new 构造函数中的非this属性实际存放到哪了】 list是局部变量,正常在函数结束时会释放掉。但是你在pushList方法中引用了这个变量,这就构成闭包,list会一直在内存中不被释放。

■网友
new实例化一个对象,会给这个对象分配内存,这些属性还是在内存,只不过在外部访问不了。变量也不会被gc自动回收
■网友
存在实例化的对象的作用域里了啊,其实可以试试get set属性,感觉还是挺好的写法啊,我是蛮喜欢的 相对于每次实例化都要var一个变量出来,get设置就好多了。另外还可以defineProperty什么的,选择更加多样化。比如你这个写成Person.prototype={get list(){return new Array}}感觉很炫酷(反正我是比较喜欢这种,哈哈),就是ie8什么的不支持,还得写兼容,比较讨厌,限制ES5发挥。


    推荐阅读