Sobes.tech
Junior — Middle

Меҳнат ёрдамчи, ки чӣ гуна идоракунии хотира ва тозакунӣ автоматии объектҳо дар JavaScript амалӣ мешавад, шарҳ дода метавонед?

sobes.tech AI

Ҷавоб аз AI

Дар JavaScript идоракунии хотира автоматӣ тавассути механизми ҷамъоварии партовҳо (garbage collection) сурат мегирад. Вақте объектҳо эҷод мешаванд, онҳо дар heap хотира мегиранд. Ҷамъовари партовҳо ба таври мунтазам санҷиш мекунад, ки кадом объектҳо дигар истифода намешаванд — яъне, ба онҳо аз коди фаъол ҳеҷ гуна истинод нест — ва хотираи онҳоро озод мекунад.

Алгоритми асосӣ ҳисоб кардани истинодҳо ва ҷустуҷӯи объектҳои дастрас аст (mark-and-sweep). Масалан, агар тағирёбте ба объект ишора кунад, он зинда ҳисоб мешавад. Агар истинодҳо нобуд шаванд, объект ба номзад барои тоза шудан табдил меёбад.

Масал:

let obj = { name: "test" };
obj = null; // ҳоло объект дастрас нест ва аз ҷониби ҷамъовари партовҳо тоза карда мешавад

Бинобар ин, барномасоз лозим нест, ки хотираро дастӣ озод кунад, ки ин хатогиҳои вобаста ба шикастани хотирасо кам мекунад.