Привет, я совершенно новичок в JavaScript, и я пытаюсь что-то сделать, но я не могу понять, когда я вызываю эту функцию:
this.start = function () {
this.interval = setInterval(startIncrement.call(this) , 1000);
}
startIncrement выполняется только один раз. Я пытаюсь создать класс Counter, который генерирует две кнопки (запуск и остановка) и одно текстовое поле. Итак, когда я это делаю:
var a = new Counter(); // generates object of Counter
a.init(); // generates the HTML (did that part)
a.start(); //start increasing the value of text box over period of time
a.stop(); // stops the counting (did that part)
А кнопки запуска и остановки просто имеют событие onclick, которое вызывает методы запуска и остановки счетчика. Я пробовал все ответы на этот вопрос setInterval запускается только один раз для метода объекта но это не сработало, и теперь я застрял.
.bind()
вместо.call()
. - person Pointy   schedule 25.10.2015.bind()
, который является единственным из трех, который возвращает вам функцию для использования позже. И.call()
, и.apply()
— это способы немедленного вызова функции; они разные в деталях, но в основном делают одно и то же. - person Pointy   schedule 25.10.2015