Autor Zpráva
ellhonza
Profil
Zdravím máme psát písemku, ale já v tom celkem dost plavu.


Ukázka co se učíme. Prej budeme psát na nějaký "konstruktory". Já to od toho učitele moc nechápu jakožto většina třídy. Zde menší ukázka co jsme dělali poslední hodinu. Dokonale jsme překočili HTML a CSS a hned najeli na JS což nechápu, ale s tím nic neudělám ;)

<!doctype html>
<html>
    <head>
        <meta charset="utf-8" />
    </head>

    <body>

<script>

    var Savec   =   function( pocetNohou )
    {
        this.pocetNohou =   pocetNohou;
    }
    Savec.prototype.sajMleko    =   function()
    {
        return "saju mléko";
    }
    Savec.prototype.vydejZvuk   =   function()
    {
        return "zatím nevím jak dělám";
    }

    var Kocka   =   function( jmeno )
    {
        this.jmeno  =   jmeno;
    }
    Kocka.prototype =   new Savec( 4 );
    Kocka.prototype.vydejZvuk   =   function()
    {
        return "mňau mňau";
    }


    var macik   =   new Kocka( "macíček" );
    console.log( macik );
    console.log( macik.sajMleko() );
    console.log( macik.vydejZvuk() );


    var Opice   =   function( jmeno , barva )
    {
        this.jmeno  =   jmeno;
        this.barva  =   barva;
    };
    Opice.prototype =   new Savec( 2 );
    Opice.prototype.pocetRukou  =   2;
    Opice.prototype.vydejZvuk   =   function()
    {
        return "hu hu hu";
    }

    var cita    =   new Opice( "čita" , "hnědá" );


    Savec.prototype.sajMleko    =   function()
    {
        return "nebudu sát nic".toUpperCase();
    };

    console.log( macik.sajMleko() )

    console.log( cita );
    console.log( cita.sajMleko() );
    console.log( cita.pocetNohou );
    console.log( cita.vydejZvuk() );

    console.log( cita.pocetRukou );
    console.log( cita.jmeno );
    console.log( cita.barva );

    //DRY

    var string  =   "ahoj";
    var string2 =   new String( "ahoj" );
    var pole    =   new Array( 'prvni' , 'druhy' , 'treti' );
//    var pole    =   ['prvni','druhy','treti'];
    console.log( string.length );
    console.log( string.toUpperCase() );
    console.log( Opice.prototype );

</script>

    </body>
</html>
Kubo2
Profil
ellhonza:
ale já v tom celkem dost plavu
Skonkretizuj prosím, čomu presne rozumieš a čomu nerozumieš.

<meta charset="utf-8" />
Ten človek vás učí XHTML?

Prej budeme psát na nějaký "konstruktory". Já to od toho učitele moc nechápu jakožto většina třídy.
Je tu možnosť, že je zlý učiteľ, nepozorní žiaci alebo blbý žiaci (ale to by som nepovedal).
Každopádne, konštruktor je metóda, ktorej volanie tvorí jednu z niekoľkých fáz konštrukcie objektu. To v preklade do slovenčiny znamená, že konštruktor zavoláš takto:

var objekt = function() {
    // telo objektu
}

var inštancia = new objekt(); // new objekt() zavolá (v tomto prípade implicitný) konštruktor
juriad
Profil
Nedělá-li ti problém angličtina, asi bych zkusl pochopit dokumentaci z mozilly:

co vlastně dělá operátor new:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new
jak funguje dědičnost:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain
dokumentace:
http://www.ecma-international.org/ecma-262/5.1/#sec-4.2.1

Pokud to chceš česky, zkus trochu prudit Chamurappiho, už tu svou učebnici píše příliš dlouho :)

Nebo ještě jinak:
Co udělá (a proč) následující kód asi chápeš:
var s = new Savec(3);
alert(s.sajMleko());
alert(s.vydejZvuk());
alert(s.pocetNohou);
S čím máš problémy?


Velkou výhodou JavaScriptu je to, že si všechny nápady můžeš okamžitě vyzkoušet.
http://kod.djpw.cz/aucb
Kubo2
Profil
Nedělá-li ti problém angličtina“, odporučil by som ti aj ja jeden dobrý web, JavaScript Garden. Kedysi som strávil celú noc tým, že som si to preštudoval a z veľkej časti vďaka textom odtiaľ teraz rozumiem JavaScriptu lepšie.
juriad
Profil
Kubo2:
Díky i za mě. Pěkný přehled.
ellhonza
Profil
Kubo2... Tak to fakt nevím jednu hodinu jsme měli HTML, druhou CSS a po zbytek roku JS.

Asi od každého něco ;)


Jinak nerozumím skoro ničemu stejně jako zbytek třídy. Chápu jak to sestavovat, ale jakmile nám dá nějakej úkol tak jsem nahranej.
juriad
Profil
ellhonza:
Dělají ti problém až ty konstruktory nebo i jiné (předchozí) části týkající se JS?
Stačí ti anglická literatura, či požaduješ českou (ať víme, kam odkazovat)?

Abychom ti mohli nějak pomoci, musíš položit konkrétní dotaz.
Klidně si vymysli svůj příklad, se kterým si nevíš rady a třeba i ukaž pokus o řešení (byť bude úplně chybný).
Debata nad fungujícím kódem je taková o ničem, když tvrdíš, že ten kód chápeš.
ellhonza
Profil
Chtěl bych se naučit něco kolem těch konstruktorů, tyto prototypy (ukázka dole) a nějakou tu dědičnost o tom dnes mluvil.

Radši česky v písemce budeme mít i zítra nějakou teorii...

Děkuji

Příklad není ten bude zítra :) Stejně si myslím, že to nezvládnu, ale mám celou noc na to se pokusit se aspoň zlepšit.

<script>

var Zvire = function( jmeno )
{
//    alert( jmeno );
    this.jmeno  =   jmeno;
};
Zvire.prototype.pozdrav =   function()
{
  alert( 'ahoj ja jsem ' + this.jmeno );
};


//Zvire( 'jonas' );
var sysel   =   new Zvire( 'sysel' );
var sova    =   new Zvire( 'sova' );
var pes     =   new Zvire( 'pes' );
sysel.pozdrav();

    Zvire.prototype.pozdrav =   function(){ alert('zmeneno'); };

    sysel.pozdrav();


var pes     {
                jmeno:  'pes' ,
                __proto__
                pozdrav: function()
            };
pes.prototype.stekej    =   function()
{
    __proto__.pozdrav
};
pes.prototype;


    var alik = new pes();


</script>
Jan Tvrdík
Profil
ellhonza:
Já jsem osobně prototypy a dědičnost konečně pochopil až po přečtení sporto.github.io/blog/2013/02/22/a-plain-english-guide-to-javascript-prototypes, kde je jasně vysvětleno, že v JS jsou dvě rozdílné věci, kterým se říká prototype, čímž to najednou začalo dávat smysl.
ellhonza
Profil
https://www.dropbox.com/s/kkavrggderm7k7o/javascript.txt

Tohle jsme dostali za úkol a písemka bude na něco podobného, ale trošku se v tom ztrácím a to jsem si o tom celkem trochu četl.
To za tím console.log by mělo ukazovat jako výsledek prej.
joe
Profil
ellhonza:
A co na tom přesně nechápeš? Úkolem je napsat vlastně něco podobného, jako uvádíš v prvním příspěvku, jen to není o zvířatech, ale o vozidlech. Pevně doufám, že to nebudete "programovat na papír" ;-)
ellhonza
Profil
Nevím prostě jak začít abych se nějak dohrabal ke konci :/
joe
Profil
ellhonza:
U prvních dvou "částí":

Vozidlo( vykonKW ); 
Vozidlo.vykonKW(); 
Vozidlo.vykonHP(); 
// vykonHP = vykonKW * 0.73549875


// Motorka > Vozidlo 
Motorka( vykonKW ); 
Motorka.pocetStop == 1;

První Vozidlo, bude předek všech tříd, další od této budou odvozeny, tzn. jako v prvním příspěvku Savec.

Metoda vykonKW jen vrátí výkon v kW, ten se předává pomocí konstruktoru, tedy getter pro pocetNohou v prvním příspěvku.

Metoda vykonHP dělá prakticky to samé, jen to ještě vynásobí konstantou.

Třída Motorka pak dědí od třídy Vozidlo a má property pocetStop, stejně jako má třeba Opice property pocetRukou.


Chápu jak to sestavovat, ale jakmile nám dá nějakej úkol tak jsem nahranej.
Podle mě tomu vůbec nerozumíš, protože zadání je prakticky stejné jako jsi v prvním příspěvku uvedl, jenom je vše jinak pojmenované.
ellhonza
Profil
Asi máš pravdu moc to nechápu. Zkusím se na to mrknout a něco zkonstruovat i když moc šancí si nedávám
ellhonza
Profil
.
ellhonza
Profil
.
Kubo2
Profil
ellhonza:
ellhonza:
To čo majú znamenať tie bodky? Len pekne vráť pôvodné texty príspevkov.
ellhonza
Profil
Byli to kraviny. Nedávalo to smysl teď jsem složil z starých testů něco co by teoreticky dávalo smysl. Hodně tam toho sedí, ale pořád mi chybí u "fabiakombi" console.logy ...

https://www.dropbox.com/s/2l48qytldr9grxe/KRATKA.HTML

Tohle mám už.

Prosím o pomoc při tom zbytku to už asi nedám prolezl jsem vše a nejde to :(

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: