Не работает код на 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>
javascript

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); -проблемма была в этой строчке. Надо было поставить "," после "}".

Sign up or Log in to write an answer