Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2017, 16:22   #1
Shvarcengold
 
Регистрация: 07.03.2017
Сообщений: 6
По умолчанию Код на JavaScript не срабатывают условия

метод start(), определяет есть ли топливо - fuel в машине и запускает движок;
метод addFuel(x) добавляет x литров топлива;
метод drive(), должен вывести Lets drive!!, при первом условии что метод start() запущен и при втором условии что fuel>0, а выводит You need to start the engine first не могу понять где я ошибся??

Код HTML:
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script>
	var fiat = {
		make: 'Fiat',
		model: '500',
		year: '1957',
		convertible: false,
		passengers: 2,
		color: 'Medium Blue',
		milige: 88000,
		started: false,
		fuel: 0,
		start: function() {
			if (this.fuel == 0) {
				alert("add fuel first then start");
				} else {
					this.started = true;
				}
		},		
		stop: function() {
			this.started = false;
		},
		drive: function() {
			if (this.sterted) {
				if (this.fuel > 0) {
				alert("Lets drive!!");
				this.fuel = this.fuel - 1;				
				} else {
				alert("you need to add fuel first!");
				this.stop();
				}
			}			
			else {
				alert("You need to start the engine first");
				}
		},
		addFuel: function(amount) {
			this.fuel = this.fuel + amount;	
			alert("Fuel is added " + this.fuel);
		}
	};
		fiat.start();
		fiat.drive();
		fiat.addFuel(2);
		fiat.start();
		fiat.drive();
		fiat.drive();
		fiat.drive();
		fiat.stop();			
	</script>
</head>
<body>
	
</body>
</html>
Shvarcengold вне форума Ответить с цитированием
Старый 01.04.2017, 22:35   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Я вот опечатку нашёл:
Код:
drive: function() {
			if (this.sterted) {
				if (this.fuel > 0) {
Это свойство не существует в объекте, поэтому считается, что оно имеет значение undefined, что в контексте условного оператора преобразуется в логическому значению false, а это влечёт то, что условный оператор не выполняется, либо же выполняется его ветка else, если таковая существует.

Последний раз редактировалось Вадим Мошев; 01.04.2017 в 22:39.
Вадим Мошев вне форума Ответить с цитированием
Старый 05.04.2017, 00:44   #3
Shvarcengold
 
Регистрация: 07.03.2017
Сообщений: 6
По умолчанию

Большое спасибо!! Всегда все упирается в одно и тоже(((
Shvarcengold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не срабатывают DBEdit`ы sergeant94 БД в Delphi 3 16.06.2013 15:45
Не срабатывают макросы strannick Microsoft Office Excel 4 11.04.2012 16:25
Не срабатывают стили romantik2011 HTML и CSS 2 08.09.2011 09:11
Код на JavaScript _-Re@l-_ JavaScript, Ajax 1 13.11.2010 18:23