Данные организованы так.
class Data{
constructor(){
var objects=[];
}
fillObjects(some_data){...}
deleteObject(id){
this.objects.splice(id,1);
}
}
class Obj{
...
}
window.data=new Data();
data.fillObjects(getObjectsFromOutside()); // тут пополняется массив data.objects экземплярами Object
Экземпляры Obj из data.objects нужно удалять. Уже реализованный способ - метод Data.deleteObject(id) . Как удалить экземпляр изнутри, т.е. что написать в методе Obj.destructor(), не обращаясь к внешнему объекту?
Второй вопрос. В некотором методе класса Data имеются строки
this.objects.forEach(function(item,index){
if(someCondition)
window.data.deleteObject(index);
});
Проблема не только в том, что нельзя вызвать удаление элемента изнутри, но и указан в методе конкретный экземпляр Data, что совершенно криво. Сюда так просто не передаётся this, т.е. this.data.deleteObject(index) выдаст ошибку. Как передать ссылку на текущий объект внутрь forEach ?