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

Kolejność wykonywania kodu

0 głosów
100 wizyt
pytanie zadane 10 lutego w JavaScript, jQuery, AJAX przez Kubs Gaduła (3,560 p.)
edycja 10 lutego 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 przez DeBos123 Nałogowiec (34,670 p.)

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

komentarz 10 lutego przez Kubs Gaduła (3,560 p.)
edycja 10 lutego 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 przez DeBos123 Nałogowiec (34,670 p.)

Czy to o to chodzi?

Tak. 

komentarz 10 lutego przez Kubs Gaduła (3,560 p.)
Naprawdę doceniam, że mi pomogłeś i byłeś wytrwały.
komentarz 11 lutego przez MsMaciek123 Pasjonat (17,830 p.)
Czyli zamknięte?
komentarz 11 lutego przez DeBos123 Nałogowiec (34,670 p.)
Napisał, że pomogłem, więc chyba tak.

Podobne pytania

0 głosów
1 odpowiedź 202 wizyt
pytanie zadane 23 maja 2018 w JavaScript, jQuery, AJAX przez kenjiro244 Dyskutant (8,490 p.)
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 28 stycznia 2017 w JavaScript, jQuery, AJAX przez DariuszH Gaduła (3,080 p.)
0 głosów
2 odpowiedzi 120 wizyt
pytanie zadane 27 listopada 2018 w C i C++ przez wixy0 Gaduła (3,400 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

65,633 zapytań

112,251 odpowiedzi

236,827 komentarzy

46,636 pasjonatów

Przeglądających: 231
Pasjonatów: 11 Gości: 220

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...