După cum putem vedea, pentru a comunica corect obiecte, avem nevoie de un fel de mecanism de stocare pentru obiecte:
storeObject(object) -> f64
- Stochează un obiect și returnează un identificator
numeric.
getObject(f64) -> object
- Obține o referință la un obiect prin identificatorul
său numeric.
releaseObject(f64) -> object
- Eliberează o referință la un obiect din
spațiul de stocare, permițând eliberarea memoriei sale.
Implementarea unei astfel de funcționalități se numește alocator. Acesta este dincolo de sfera acestui tutorial. Ne-am putea imagina o implementare foarte simplă a acestuia și anume un vector în creștere continuă astfel încât un obiect este stocat în vector și indicele său este returnat ca identificator.
let storage = [];
function storeObject(obj){
let index = storage.length;
storage.push(obj);
return index;
}
function getObject(handle){
return storage[handle];
}
function releaseObject(handle){
return storage[handle] = null;
}
Sunt multe aspecte pe care trebuie să le luăm în considerare în implementarea noastră.