DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> javascript中的垃圾回收
javascript中的垃圾回收
編輯:JavaScript綜合知識     

   1引用計數垃圾回收

  核心:跟蹤記錄對象被引用的次數。思路是如果一個對象A被賦值給了一個變量v,則該對象A的引用計數值加1,如果變量v又被賦予其他值了,比如a="str",則該對象A的引用計數值減1.當這個引用計數值變成0時,就表明它所占的內存空間可以被回收了。

  1 var A={b:4};

  2 var v=A;//此時A的引用計數值為1

  3 var vv=A; //此時A的引用計數值為2

  4 v=9;//A的引用計數值為1

  5 vv="hah";//A的引用計數值為0,當垃圾收集器下次運行時,A就被回收

  如果出現了循環引用:

  1 var A={b:4,c:null};

  2 var B={a:4,c:null};

  3

  4 A.c=B; //B的引用計數值為1

  5 B.c=A;//A的引用計數值為1,此時他們互相引用,就不會被回收

  2標記清除

  核心:當變量進入執行環境時,標記為“進入環境”,但變量離開環境時,標記為“離開環境“。當垃圾收集器遇到標記為”離開環境“的變量時,就將它們所占的內存空間回收。

  1 function A(){

  2 var a=12; //進入函數A時,預解析將a先申明,並被標記為”進入環境“

  3 }

  4 //執行完函數A後, a被標記為”離開環境“

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved