Не работает код на js es6 урок arrow function 2, не выводит сообщение, в чем проблема?
0
<!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 ответов
2
У тебя строчки не хватает этой:
let self = this;
в функции:
showMessage() {
let self = this;
setTimeout(function() {
document.getElementById('result').innerText = self.value;
}, this.delay);
}
Посмотри здесь как должно быть:
https://fructcode.com/ru/courses/modern-javascript/interactive-arrow-functions-part2/
0
}) this.delay); -проблемма была в этой строчке. Надо было поставить "," после "}".