JavaScript OOP - методы класса (подписи и соглашения) - PullRequest
1 голос
/ 20 февраля 2012

Допустим, я создаю простую визуализацию MVC JavaScript.

Контроллер для конкретного представления визуализации может выглядеть примерно так:

Controller {

 model
 year
 width
 height
 xScale
 yScale

 render() {
    this.year = this.model.get("year")
    this.width = this.model.get("width")
    updateScales();

    draw A, B, C
 }

 updateScales() {
   this.xScale = this.width ...
 }

}

Как видите, каждый разметод рендеринга контроллера вызывается, он устанавливает некоторые атрибуты и обновляет «производные атрибуты масштаба».

У меня есть два вопроса относительно этого кода:

1) Это плохая практика, чтобы методы класса работали непосредственно с атрибутами класса?Должны ли они скорее возвращать значение и иметь подпись?

2) Предположим, я хотел бы оптимизировать этот код так, чтобы updateScales вызывался только при изменении ширины или высоты.Каков хороший - и достаточно общий способ - обработки такой логики, связанной с изменением атрибутов модели?

1 Ответ

0 голосов
/ 20 февраля 2012

1) в общем случае рекомендуется иметь доступ к свойствам с помощью методов set и get .Таким образом, вы можете легко реализовать дополнительные операции, которые могут быть выполнены при изменении свойства.2) как сказал Джулиан Д. , вы можете обработать масштаб обновлений с помощью события 'change' в backbone.js

Однако в вашем сообщении неясно, действительно ли вы используетеbackbone.js или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...