• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kolejność wykonywania kodu

VPS Starter Arubacloud
0 głosów
213 wizyt
pytanie zadane 10 lutego 2019 w JavaScript przez Kubs Mądrala (5,190 p.)
edycja 10 lutego 2019 przez Kubs

Dlaczego w tym kodzie gdy `fuel` otrzymuje wartość większą niż 0 ,wykonuje się 

"Najpierw musisz włączyć silnik."

a nie ten drugi `if`

drive: function() {                 
                if (this.started) {
                    if (this.fuel > 0) {
                        alert(this.make + " " +
                              this.model + " robi: brum wrrrr!");
                        this.fuel = this.fuel - 1;
                    } else {
                        alert("Osz..., brak paliwa.");
                        this.stop();
                    } 
                } else {
                    alert("Najpierw musisz włączyć silnik.");
                }
            },

 

Update. Ale metoda `start` wygląda tak:

start: function() {                
                if (this.fuel == 0) {
                    alert("Bak jest pusty, zatankuj przed jazdą!");
                } else {
                    this.started = true;
                }
            },

Czyli `started` jest `true`

 

Cały kod

var fiat = {                   
            make: "Fiat",
            model: "500",
            year: 1957, 
            color: "szaroniebieski",
            passengers: 2,
            convertible: false,
            mileage: 88000,
            fuel: 0,
            started: false,
        
            start: function() {               
                if (this.fuel == 0) {
                    alert("Bak jest pusty, zatankuj przed jazdą!");
                } else {
                    this.started = true;
                }
            },
        
            stop: function() {        
                this.started = false;
            },
        
            drive: function() {                
                if (this.started) {
                    if (this.fuel > 0) {
                        alert(this.make + " " +
                              this.model + " robi: brum wrrrr!");
                        this.fuel = this.fuel - 1;
                    } else {
                        alert("Osz..., brak paliwa.");
                        this.stop();
                    } 
                } else {
                    alert("Najpierw musisz włączyć silnik.");
                }
            },
        
            addFuel: function(amount) {           
                this.fuel = this.fuel + amount;
            }
        };
        
        fiat.start();        
        fiat.drive();        
        fiat.addFuel(2);    
        fiat.start();       
        fiat.drive();       
        fiat.drive();        
        fiat.drive();       
        fiat.stop();        
        

 

1 odpowiedź

+1 głos
odpowiedź 10 lutego 2019 przez DeBos123 Nałogowiec (44,950 p.)

Ponieważ wartość this.started nie zwraca true.

komentarz 10 lutego 2019 przez Kubs Mądrala (5,190 p.)
edycja 10 lutego 2019 przez Kubs

Ok, ok rozumiem teraz o co Ci chodzi :) Po prostu ten komunikat "Najpierw...." wykonuje się w tym pierwszym wywołaniu metody drive.

Ja cały czas referowałem do tej metody drive zaraz po addFuel.

Czy to o to chodzi?

Czasami takie nieuważnie niedopatrzenia mogą być bardzo czasochłonne :)

DZIĘKUJE SERDECZNIE.

komentarz 10 lutego 2019 przez DeBos123 Nałogowiec (44,950 p.)

Czy to o to chodzi?

Tak. 

komentarz 10 lutego 2019 przez Kubs Mądrala (5,190 p.)
Naprawdę doceniam, że mi pomogłeś i byłeś wytrwały.
komentarz 11 lutego 2019 przez MsMaciek123 Pasjonat (24,760 p.)
Czyli zamknięte?
komentarz 11 lutego 2019 przez DeBos123 Nałogowiec (44,950 p.)
Napisał, że pomogłem, więc chyba tak.

Podobne pytania

+1 głos
1 odpowiedź 283 wizyt
pytanie zadane 28 lutego 2020 w C# przez kubekszklany Gaduła (3,170 p.)
0 głosów
1 odpowiedź 667 wizyt
pytanie zadane 23 maja 2018 w JavaScript przez kenjiro244 Dyskutant (8,600 p.)
0 głosów
1 odpowiedź 380 wizyt
pytanie zadane 28 stycznia 2017 w JavaScript przez DariuszH Gaduła (3,100 p.)

92,454 zapytań

141,262 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...