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

Obiekty/konstruktory w js

Object Storage Arubacloud
0 głosów
333 wizyt
pytanie zadane 11 października 2019 w JavaScript przez Młody programista Obywatel (1,200 p.)

Witam,

mam problem z wyświetlaniem obliczonych pól podanych przeze mnie figur, tzn. mam obiekt, w którym są dane funkcje do obliczania, ale nic mi nie działa, konsola nie pokazuje błędu, nie wiem co zrobiłem źle. Mógłby ktoś nanieść poprawki, wskazać co i jak źle zrobiłem ?

Oto kod: 

<script>
    function poleFigury(a,b,c) {
        
        this.Kwadrat = function (a) {
            return a * a;
            document.write("Pole kwadratu " + this.Kwadrat() + "<br>");
        }
        console.log(this.Kwadrat);
        this.Prostokat = function(a,b){
            return a*b;
            document.write("Pole prostokatu " + this.Prostokat() + "<br>");
        }
        this.Trojkat = function(a,c){
            return (a * c) / 2;
            document.write("Pole trojkata " + this.Trojkat() + "<br>");
        }
    }
    const kwadrat = new poleFigury(2);
    kwadrat.Kwadrat();

    

    
</script>

 

komentarz 11 października 2019 przez adrian17 Ekspert (344,860 p.)
Um, ale ta klasa w zasadzie nic nie robi... ma po prostu trzy funkcje które równie dobrze mogłyby być wolnymi funkcjami bez klasy. Nawet niezależnie od patrzenia na kod, "klasa z polami licząca pola" brzmi dziwnie.

Proponuję to też napisać to na współczesnym zapisie klas, pewnie byłoby też trochę czytelniej.

1 odpowiedź

+1 głos
odpowiedź 12 października 2019 przez DawidK Nałogowiec (37,910 p.)
wybrane 12 października 2019 przez Młody programista
 
Najlepsza

Adrian ma racje, pozatym instrukcja 'return' zwraca wartość i wszystkie instrukcje poniżej nie zostaną wykonane.

Możesz wydzielić jedną klasę 'Figura' wrzucić do niej wspólne właściwości - w zasadzie jedną (bokA) i wspólne metody np jakąś metodę wyświetlającą początkowy tekst typu 'Pole figury wynosi:'

Później utworzyć 3 klasy (Kwadrat, Prostokąt, Trójkąt), które dziedziczą po 'Figurze' 'bokA' i metodę wyświetlającą tekst. W klasach utworzyć dodatkowe właściwości dla 'Prostokąta' 'bokB' i dla 'Trójkąta' 'wysokość' oraz dla wszystkich metodę obliczającą pole.

class Figura {
    constructor(bokA) {
        this.bokA = bokA;
    }

    wyswietlText() {
        return 'Pole figury wynosi: ';
    }
}

class Kwadrat extends Figura {
    constructor(bokA) {
        super(bokA)
    }

    obliczPole() {
        return super.wyswietlText() + Math.pow(this.bokA,2);
    }
}

class Prostokat extends Figura {
    constructor(bokA,bokB) {
        super(bokA);
        this.bokB = bokB;
    }

    obliczPole() {
        return super.wyswietlText() + this.bokA * this.bokB;
    }
}

class Trojkat extends Figura {
    constructor(bokA,wysokosc) {
        super(bokA);
        this.wysokosc = wysokosc;
    }

    obliczPole() {
        return super.wyswietlText() + (this.bokA * this.wysokosc) /2;
    }
}

const kwadrat = new Kwadrat(2);
console.log(kwadrat.obliczPole());

const prostokat = new Prostokat(4,6);
console.log(prostokat.obliczPole());

const trojkat = new Trojkat(10,4);
console.log(trojkat.obliczPole());

  

Podobne pytania

–2 głosów
1 odpowiedź 284 wizyt
pytanie zadane 24 października 2022 w C i C++ przez benny13 Obywatel (1,150 p.)
0 głosów
2 odpowiedzi 287 wizyt
pytanie zadane 8 marca 2018 w JavaScript przez Yashe Dyskutant (7,720 p.)
+7 głosów
3 odpowiedzi 542 wizyt

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...