I alwaysusually go with a design where objects handle themselves (that's what methods are for, after all) but the base World has a listlists of all the objects thatand it uses those lists to coordinate them. So something like:
class World { var entitieswalls = []; var actors = []; function update() { for each (entityactor in entitiesactors) { entityactor.update(entitieswalls); } } } class EntityActor { function update(entitieswalls) { this.move(); for each (entitywall in entitieswalls) { this.collide(entitywall); } } }