Показать сообщение отдельно
  #2 (permalink)  
Старый 20.02.2015, 14:07
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

arcmag,
Во первых имена констркторов объектов принято писать с большой буквы.
Во вторых у вас в обработчике клика не верный контекст.
В третьих не надо объявлять методы объекта в конструкторе, это приводит к перерасходу памяти. Методы надо объявлять в прототипе.
/**
 * @class VideoManager
 * @param {HTMLVideoElement} video
 * @param {HTMLElement} playPause
 * @constructor
 */
function VideoManager(video, playPause){
    /**
     * Видео элемент
     * @type {HTMLVideoElement}
     */
    this.video = video;
    
    this._setHandlers(playPause);
}

/**
 * Назначаем обработчик
 * @param {HTMLElement} playPause
 * @private
 */
VideoManager.prototype._setHandlers = function (playPause) {
    playPause.addEventListener("click", this.play.bind(this), false);
};

VideoManager.prototype.play = function(){
    this.video.play();
};

Последний раз редактировалось tsigel, 20.02.2015 в 14:16.
Ответить с цитированием