← Комьюнити

Не работает код на js es6 урок arrow function 2, не выводит сообщение, в чем проблема?

Roman Borodai2 ответов
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Arrow functions</title>
</head>
<body>

<div id="result"></div>

<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">

class Messenger {

constructor(value, delay) {
this.value = value;
this.delay = delay;
}

showMessage() {
setTimeout(() => {
document.getElementById('result').innerText = this.value;
}) this.delay);
}

}

var messenger = new Messenger('How may I help you?', 2000);
messenger.showMessage();


</script>

</body>
</html>

2 ответов

У тебя строчки не хватает этой:

let self = this; 

в функции:

showMessage() {
		let self = this;    
                setTimeout(function() {
                    document.getElementById('result').innerText = self.value;
                }, this.delay);
}

Посмотри здесь как должно быть:

/ru/courses/modern-javascript/interactive-arrow-functions-part2/

student_pavX41ci2

}) this.delay); -проблемма была в этой строчке. Надо было поставить "," после "}".

Roman Borodai