Czesc,
Jak zrobić aby nie robic 2 roznych funkcji tylko dac jedna? Tyle ze problem stawia nazwa div'a, jednakze zmienna jest taka sama (to glownie od niej zalezy co sie pojawi).
Prosze o pomoc.
function Auta(nazwa, model, moc) {
this.nazwa= nazwa;
this.model= model;
this.moc= moc;
this.modele= function() {
if(this.model> 15) {
return '***';
}
else if(this.model> 10) {
return '**';
}
else {
return '*';
}
};
this.dod = function() {
let extra2 = '<font color=yellow> extra2</font>';
let extra1 = '<font color=yellow> extra1</font>';
if(this.model> 15) {
return this.nazwa+= extra2;
}
else if(this.model> 10) {
return this.nazwa+= extra1;
}
else {
return this.nazwa;
}
}
}
var audi= new Auta('Audi', 16, 9);
function audii() {
document.getElementById('audidod').innerHTML = audi.dod();
document.getElementById('audimodel').textContent = audi.model;
document.getElementById('audimoc').textContent = audi.moc;
document.getElementById('audimodele').textContent = audi.modele();
}
var bmw= new Auta('BMW', 13, 9);
function bmww() {
document.getElementById('bmwdod').innerHTML = bmw.dod();
document.getElementById('bmwmodel').textContent = bmw.model;
document.getElementById('bmwmoc').textContent = bmw.moc;
document.getElementById('bmwmodele').textContent = bmw.modele();
}
audii();
bmww();
<div id="audi_">
<h1><span id="audidod"></span></h1>
Model <span id="audimodel"></span><br>
Moc: <span id="audimoc"></span><br>
Modele: <span id="audimodele"></span><br>
</div>
<div id="bmw_">
<h1><span id="bmwdod"></span></h1>
Model: <span id="bmwmodel"></span><br>
Moc: <span id="bmwmoc"></span><br>
Modele: <span id="bmwmodele"></span><br>
</div>
Auta
(bo jakby tak ładnie podzielić, to obiekt tworzony przezAuta
zawierałby same dane, a te dane byłyby potem obrabiane przez "widok" (renderAuto
). Jednak np. funkcjadod
zwraca kod HTML (przestarzały swoją drogą, bo<font>
już się nie używa), więc to raczej też bardziej odpowiedzialność widoku{nazwa: "bmw"}
, ewentualnie zrobił funkcję-fabrykę, która taki literał tworzy. Operowanie na konstruktorach, metodach, this itp. to w tym przypadku tylko zaciemnianie sytuacji i komplikowanie prostych rzeczy.