ไม่ว่าจะภาษาโปรแกรมใด กรอบชีวิตของหน่วยความจำก็เหมือนกันประมาณนี้
- จัดสรรหน่วยความจำที่ต้องการ
- ใช้หน่วยความจำที่จัดสรร (อ่าน, เขียน)
- ปล่อยหน่วยความจำที่จัดสรรเมื่อไม่จำเป็นแล้ว
ส่วนที่สองเป็น explicit ในทุกภาษา การใช้หน่วยความจำที่จัดสรรต้องทำโดยนักพัฒนา
ส่วนที่หนึ่งและสามเป็น explicit ในภาษาระดับต่ำ مثل C แต่เป็น implicit ในภาษาระดับสูง مثل JavaScript
ดังนั้น ไม่มีวิธี explicit ในการจัดสรรหรือปล่อยหน่วยความจำใน JavaScript เพียงแค่สร้างออบเจ็กต์ก็จัดสรรหน่วยความจำให้ เมื่อตัวแปรออกจาก scope จะถูก garbage collected อัตโนมัติ (ปล่อยหน่วยความจำที่ออบเจ็กต์นั้นใช้)
function test() { // Allocate and use the memory let x = { name: "John", age: 24 } console.log(x); return null; // As soon as the method goes out of scope, it is garbage collected // and it's memory freed. } test();รอบที่กล่าวในคอมเมนต์จะเกิดขึ้นทุกครั้งที่เรียกเมธอด รอบนี้เหมือนกันสำหรับทุก scope (global scopes ด้วย)