Показать сообщение отдельно
  #1 (permalink)  
Старый 20.07.2017, 21:28
Аспирант
Отправить личное сообщение для Tanya51 Посмотреть профиль Найти все сообщения от Tanya51
 
Регистрация: 09.07.2017
Сообщений: 49

Объекты и их методы. setTimeout
Задача:
Создайте объект coffeeMachine со свойством message: ‘Your coffee is ready!’ и методом start(), при вызове которого – coffeeMachine.start() – через 3 секунды появляется окно с сообщением, записанным в свойстве объекта message.


мой JS:

var coffeeMachine={
  message: 'Your coffee is ready!',
  start: function(){
            return timer=setTimeout(function() { alert(this.message) }, 3000);
         },
}

coffeeMachine.start();



что самое интересное:
1. когда пишу так alert(coffeeMachine.message)- выводит мне нужное сообщение;
когда так alert(this.message) - undefined.

2. при этом, если так:
start: function(){
            return timer=setTimeout(function() { alert(this.message) }, 3000);
         },


то мне выводит мое сообщение,но в консоле выпадает "timer is not defined" ;

Если я передаю аргумент "timer" в функцию или вообще его убираю из тела функции, то ничего не работает.


Подскажите что не так
Ответить с цитированием