В приведенном ниже коде я легко могу утверждать, что zombie
является экземпляром Zombie
.
Когда создается zombie
, ему отправляется функция bitmapRenderer
и становится функцией render()
внутри `Zombie '.
Я предполагаю, что, поскольку bitmapRenderer
является функцией, которая является объектом, она передается по ссылке.Я могу создать столько зомби, сколько захочу, и не создавать больше функций bitmapRenderer
, память не тратится впустую, но как я могу доказать это с помощью утверждения?
function bitmapRenderer(drawable) {
console.log('I am bitmapRenderer function', drawable);
}
class Zombie {
constructor(renderer) {
this.renderer = renderer;
this.x = 100;
this.y = 100;
this.name = 'zombie';
}
render() {
this.renderer(this);
}
}
const zombie = new Zombie(bitmapRenderer);
console.assert(zombie instanceof Zombie);