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

前端之家收集整理的这篇文章主要介绍了JavaScript 里 new 出来的对象 怎么销毁它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
                                            <table class="text"&gt;<tbody><tr class="li1"&gt;

<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

自动内存管理。编写JavaScript程序时 只要管new出对象,JavaScript引擎在底下会通过分析对象图的可到达性来判断对象的存活,进而释放掉已无活引 用的对象。所以要让JavaScript引擎有机会释放掉某个对象,就得确保整个程序里已经没有对那个对象的活引用。 前面有人提到delete运算符,它可以用来删除变量或属性,但并不直接涉及删除/释放对象。如果指向某个对象的 活引用当中有全局变量或别的对象的属性,那用delete来删除掉那些变量或属性自然是有助减少活引用的个数。 到完全没有活引用指向该对象时,它就能在下次GC的时候被释放掉。   链接:https://www.zhihu.com/questio...   2.在JS里面如果一个对象不被引用,那么这个对象就会被GC回收;在JS里面存在两种作用域:全局作用域和函数作 用域;全局变量声明之后,它的生命周期会一直存在,直到全局作用域被销毁,例如浏览器退出、系统关闭等。new 出来的对象如果是存在与全局作用域下,只有等全局作用域被销毁,对象才能被销毁。函数声明之后,等函数调用 了,系统会创建一个执行上下文,开辟一个新的内存区去运行函数,当函数执行完毕之后该区域会被回收,new出来的 对象处于函数作用域内,对象会随着函数执行完毕,而被回收内存,销毁。函数作用域里面new出来的对象,被外部变 量所引用了(出现闭包时候),只有等外部变量不在引用函数作用域内的new出来的对象变量(即外部变量不在使用), new出来的对象会被销毁

猜你在找的JavaScript相关文章