Portál AbcLinuxu, 1. května 2025 00:44
Tak se nejak probiram ruznymi frameworky a koukam jak to tam pekne perou by OOP a zajimalo me teda jak je to stou dedicnosti v jsku. Ano namitnete jsku ma nativne prototypovou dedicnost. Ale co kdyz potrebujeme komplexnejsi a provazanejsi model mezi objekty.
Nasel sem tento clanek, shodou okolnosti, byl nekde na webu docela i zkritizovan(negativne), ze to az zas tak neni dobra cesta. Hm, co si o tom myslite, popr. jake mate zkusenosti, pripadne pridejte link
dedicnost v jsku - dle Douglas(e) Crockford(a)(en - crockford.com)
Snazší práce s objekty v JavaScriptu (Dagblog)
Objektove orient. programovani v jsku (interval.cz)
Rethinking JavaScript Objects (en - sitepoint.com)
Updated 15.8.2007 08:40
Nasel jsem velmi pekny clanek o dedicnosti mezi jednotlivymi objekty v jsku (zdroj).
Vytah z clanku
- zde je napr. jak zdedit vlastnosti(pouze vlast. nikoli metody) z jedne tridy A do tridy B (technika - object masquerading):
function ClassA () {
}
function ClassB() {
}
ClassB.prototype = new ClassA;
- abychom mohli podedit vse vcetne metod je nutny tento zapis:
function ClassA () {
}
function ClassB() {
this.superclass = ClassA;
this.superclass();
delete this.superclass;
}
ClassB.prototype = new ClassA;
Moc pekny clanek - mrknete na nej, jako bonbonek prinasi jednoduchou metodu pro dedeni mezi jednotlivy classes... zdroj
Updated 13.08.2007 16:55
...v tom pripade doporucuji jeste jeden krok.... podivat se na funkcionalni programovani a funkce vyssich radu... leccos vam to z JS osvetli.... (prispevek)link via google
...to jako na plichtění webovek člověk potřebuje víc než na napsání kompilátoru a runtimu pro Self?(prispevek)link via diskuze
Tiskni
Sdílej:
Jen doplním:
http://research.sun.com/self/
http://www.gliebe.de/self/index.html
Self je super (minimalističnost dotakl skoro k Lispu), jen škoda že už ho nikdo nevyvíjí.
Ale pro jistotu, priklad:
function God(name,way){
this.name = name.toString();
this.way = way.toString();
this.getFce = writeToAlert;
}
//jak chapete tuto fci - myslim, urcite je pouzitelna kdekoli v kontextu jska,
//kazda fce ji muze tedy zavolat,... je to tak?
function writeToAlert(){
var msq = "";
for(var i=0; i < arguments.length;i++){
msq +=arguments[i];
}
alert(msq);
}
var x = new God("Allah","fire");
x.getFce(x.name,x.way);
//a co tento zapis?
var y = new God("God","water");
y.prototype.getFce = writeToAlert;
jestli dobre chapu prototype-dedicnost, tak x.getFce je sice public, a muze byt pouzita jakoukoli jinou fci, ale pokazde musi byt vytvorena nova kopie teto fce. Kdezto u y.getFce s vytvorenim kazde instance, je v prototypu kazde znich jiz fce writeToAlert zdedena (a pri samotnem volani jiz nedochazi k jejimu kopirovani do pameti) - je to tak?
Zadam o feedback, kazdemu dekuji....
Musim se opravit:
function init(){
var x = new God("Allah","fire");
x.getFce(x.name,x.way);
}
function init2(){
var y = new God("God","water");
God.prototype.getFce = writeToAlert;
y.getFce(y.name,y.way);
}
window.onload = init;
document.getElementById("btn_test").onclick = init2;
Jo a jeste sem se chtel zeptat, toto jsou vlastne vlastnosti a metody samotne instance, ale k cemu jsou dobre vlastnosti/metody samotne tridy/fce
God.isExist = new String("Existence prozatim neprokazana...");
Muzete mi vysvetlit tento/tyto terminy:
na IDEckovost ani enterprise style nekoukejte...
- http://www.fit.vutbr.cz/study/courses/TJD/public/0304TJD-Svec.pdf
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.