Ответы пользователя по тегу ООП
  • Как создать перегруженный конструктор класса в JS?

    Stdit
    @Stdit
    [мимо]
    Ответ написан
    Комментировать
  • Как создать перегруженный конструктор класса в JS?

    Stdit
    @Stdit
    А зачем вам объект «окружность»? Что вы с ним потом собираетесь делать, ради чего здесь он создаётся? Может проще написать просто какой-нибудь «хелпер»:
    helpers.circle = function (context, x, y, radius, color) {
        context.arc(x, y, radius, startDegrees, endDegrees, counterClockwise);
        context.fillStyle = color;
        context.fill();
    }
    

    Ну или завести объект «рисовальщик», хранящий ссылку на графический контекст и настройки рисования, и имеющий необходимые методы (вроде приведённого выше) для работы с этим контекстом:
    function Painter(context, defaultColor) {
        this.context = context;
        this.defaultColor = defaultColor;
        this.circle = function (x, y, r, color) {
            if (color === undefined) {
                color = this.defaultColor;
            } 
            this.context.arc(x, .... // code
        }
    }
    

    Это если вам нужно наследование. Объекты по-моему имеет смысл создавать только для реально существующих инстансов (спрайты, например, от которых наследуются игровые объекты и персонажи). Если окружность — это динамический объект, тогда можно уже думать и крутить, в зависимости от архитектуры графики, например так:
    function Circle(x, y, r, color) {
        this.x = x;
        this.y = y;
        this.r = r;
        this.color = color;
        this.render = function (context) {
            context.arc(this.x, ... 
        }
    }
    
    Ответ написан
    6 комментариев