Reference-counting GC
Thuật toán đơn giản nhất: object không còn reference nào → eligible cho GC.
Ví dụ cơ bản
var obj = { x: { y: 2 } }; // 2 object, obj tham chiếu x obj = 1; // obj cũ không còn reference → GC thu gom
Hạn chế: Circular Reference
function f() { var obj1 = {}; var obj2 = {}; obj1.p = obj2; obj2.p = obj1; // tạo cycle } f();
Sau f(), obj1, obj2 out of scope nhưng vẫn tham chiếu lẫn nhau (count=1) → reference-counting không thu gom được → memory leak.