Не выходит сообразить почему только один раз вызывается setTimeout()?
Печатает только 2 буквы.
class app {
constructor(options) {
this.options = options;
}
typeWriter(text = '', target = 'typewriter', speed = 50, i = 0){
let that = this;
console.log(speed);
if ( text.length > i ) {
document.getElementById(target).innerHTML += text.charAt(i);
setTimeout( that.typeWriter, speed , text, target, speed, ++i );
}
}
}
let wow = new app();
wow.typeWriter('Some text');
v2 - стрелочная функция решила проблему:
class app {
constructor(options) {
this.options = options;
}
typeWriter(text = '', target = 'typewriter', speed = 50, i = 0){
if ( text.length > i ) {
document.getElementById(target).innerHTML += text.charAt(i);
setTimeout(() => { this.typeWriter( text, target, speed, ++i ) }, speed );
}
}
}