Diskuze: přidělávka OOP
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
No, přepisovat do objektů ti to nebudu. Na to jsou tutoriály, z kterých se to naučíš a sám si to přepíšeš.
Představ si, že Školák je objekt. Můžeš mi něco udělat (přidat známku) nebo může udělat něco on (mluvit, napsat svoje známky atd). Pak je tu druhý člověk. Ten co mu ty známky může zapsat (učitel). Čili učitel může školákovi zapsat známku. Tím objektu Ucitel vznikne metoda zapisSkolakoviZnamku. Objekt Ucitel samozřejmě má ve vlastnosti zaci uložené všechny žáky, které může ohodnotit. Pokud tam žák není, tak si ho přidá. Teď máš dvě možnosti. Můžeš uživateli přidávat známky podle předmětu nebo podle učitele. Můžeš klidně vytvořit i další objekty jako Anglictina, Nemcina atd. Což by asi bylo nepraktické, protože dál by byly objekty nevyužitelné a už by to bylo jen pole na známky. Takže nejspíš každý žák dostane objekt s předměty.
Třeba objekt Skolak bych napsal asi podobně jako:
function Skolak(){
this.znamky = {};
};
Skolak.dostupnePredmety = {
AJ:'Angličtina',
Nj:'Němčina',
CJ:'Čeština'
};
Skolak.prototype.pridejZnamku = function(predmet,znamka){
var znamky = this.znamky;
var znamky_k_predmetu = znamky[predmet];
if(!znamky_k_predmetu && Skolak.dostupnePredmety[predmet]){ znamky_k_predmetu = znamky[predmet] = []; }
if(znamky_k_predmetu.length>6){ return false; }
znamky_k_predmetu.push(znamka);
};
Zkus popřemýšlet o zbytku.
Zobrazeno 2 zpráv z 2.