@kirillleogky

Как создать таймер с помощью call?

function Clock(options) {
  this._template = options.template;
}

Clock.prototype._render = function() {
  var date = new Date();

  var hours = date.getHours();
  if (hours < 10) hours = '0' + hours;

  var min = date.getMinutes();
  if (min < 10) min = '0' + min;

  var sec = date.getSeconds();
  if (sec < 10) sec = '0' + sec;

  var output = this._template.replace('h', hours).replace('m', min).replace('s', sec);

  console.log(output);
};

Clock.prototype.stop = function() {
  clearInterval(this._timer);
};

Clock.prototype.start = function() {
  this._render();
  var self = this;
  this._timer = setInterval(function() {
    self._render();
  }, 1000);
};
    var clock = new Clock({
      template: 'h:m:s'
    });
    clock.start();


Данный код выводит в консоль текущее время через каждую секунду.

Подскажите как переделать данный код
Clock.prototype.start = function() {
  this._render();
  var self = this;
  this._timer = setInterval(function() {
    self._render();
  }, 1000);


чтобы вместо задания this через переменную использовалось call ?
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
SDmitriyS
@SDmitriyS
Javascript разработчик
Clock.prototype.start = function() {
  this._render();
  this._timer = setInterval(this._render.bind(this), 1000);


Clock.prototype.start = function() {
  this._render();
  this._timer = setInterval(function() {
    this._render.call(this);
  }.bind(this), 1000);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы