JavaScript的垃圾回收(Garbage Collection)
来源:互联网 发布:淘宝处女红坑了多少人 编辑:程序博客网 时间:2024/05/16 07:03
<本文主要为《JavaScript高级程序设计(第三版)》中的内容>
JavaScript语言和Java、C#一样,自带垃圾回收。对于使用JavaScript的程序员来说,了解垃圾回收对程序的编写有很大的帮助,会搞清楚许多摸不到头脑的问题的根源。
JavaScript的垃圾回收策略有两种:
1、标记清除(mark-and-sweep)
当变量进入环境时,就将他标记为“进入环境”,当变量离开环境时,就将他标记为“离开环境”。标记为离开环境的变量就是准备回收的变量,垃圾回收器会挑一个适当的时机完成内存清除工作。
2、引用计数(reference counting)
当生命了一个变量并将一个引用类型值赋给该变量时,这个值的引用次数就是1,如果又赋给另一个变量,则引用加1。相反,如果这个值的引用指向了另一个值,则这个值的引用次数就减1。当引用次数为0时,就没法访问这个值了,此时垃圾回收器就会准备清除这个值的内存了。
大部分浏览器采用的都是第一种策略,而第二种策略在循环引用中会有问题。
function problem(){ var objectA=new Object(); var objectB=new Object(); objectA.someOtherObject=objectB; objectB.anotherObject=objectA;}
这两个对象的引用次数永远不会是0。IE中DOM和BOM中的对象是使用C++以COM对象的形式实现的,而COM对象的垃圾回收机制就是引用技术策略,所以对这种对象在使用之后,必须将其引用赋值为null。
- JavaScript的垃圾回收(Garbage Collection)
- 垃圾回收(garbage collection)介绍
- android垃圾回收garbage collection
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- Java的垃圾回收(Garbage Collection)机制
- 浅谈PHP5中垃圾回收算法(Garbage Collection)的演化
- Java的垃圾回收(Garbage Collection)机制
- 浅谈PHP5中垃圾回收算法(Garbage Collection)的演化
- 全面了解JavaScirpt 的垃圾(garbage collection)回收机制
- Garbage collection--垃圾回收机制(java)
- Java垃圾回收(garbage collection)介绍
- 7. 垃圾回收(Garbage Collection)
- PHP垃圾回收机制(Garbage Collection . GC)
- 实战 SQL Server 2008 数据库误删除数据的恢复
- 破解豆丁网下载方法(免费下载哦
- PHP比你想象的好得多
- Android 简历
- Java 实现全局(全操作系统)的键盘鼠标模拟
- JavaScript的垃圾回收(Garbage Collection)
- CF232A-cycles 构造,贪心
- 程序员能力的四个境界
- 创建ORACLE JOB
- 趣文:程序员最常见的谎话
- 装了Chrome 后,yum出问题的解决方法
- QTP学习笔记 之 DataTable参数化循环
- JS字符串替换函数全部替换方法 JS 正则表达式如何使用变量
- 中国的税收种类