• JavaScript 里 new 出来的对象 怎么销毁它?


    JavaScript的规范(ECMA-262 ECMAScript)没规定JavaScript引擎要如何实现对JavaScript对象的内存管理。实际实现中几乎所有JavaScript引擎都使用基于跟踪(trace)的GC来实现自动内存管理。
    编写JavaScript程序时只要管new出对象,JavaScript引擎在底下会通过分析对象图的可到达性来判断对象的存活,进而释放掉已无活引用的对象。

    所以要让JavaScript引擎有机会释放掉某个对象,就得确保整个程序里已经没有对那个对象的活引用。

    前面有人提到delete运算符,它可以用来删除变量或属性,但并不直接涉及删除/释放对象。如果指向某个对象的活引用当中有全局变量或别的对象的属性,那用delete来删除掉那些变量或属性自然是有助减少活引用的个数。到完全没有活引用指向该对象时,它就能在下次GC的时候被释放掉。


    作者:RednaxelaFX
    链接:http://www.zhihu.com/question/21628109/answer/18818671
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
     
    有人说;只需要把变量对对象的引用断开就可以了,如:var o = new Object(); o = null;
  • 相关阅读:
    6.8
    6.7
    6.2
    6.1儿童节
    5.24
    5.22
    5.18
    5.17
    Visual Studio开始一个HelloWorld的enclave程序
    以太坊MPT树的HP(Hex-Prefix)编码
  • 原文地址:https://www.cnblogs.com/coding4/p/5447039.html
Copyright © 2020-2023  润新知