Autor Zpráva
nexus
Profil
Dobry vecer,
mam problem s OOP v JavaScriptu, jedna se mi o vytvoreni vlastniho objektu jmenem "okno", ale mam tam jednu metodu, kterou nevim, jestli ji mam spravne zapsanou. Nejspis ne, jinak by mi konzole nerikala, ze je tam chyba. Muzete mi prosim poradit, jak je spravny zapis? Jde o metodu vypisOkno();.



<script type="text/javascript">
  // OOP v JavaScriptu
  // params:
  // okno(typOkna,cesta)

  // VLASTNOSTI:
  // okno.typOkna;      <- nastaveni typu okna, měněno dynamicky pro ziskani parametru
  // okno.cesta;        <- pouze u okno.typOkna="RSS"; obsahuje zdroj pro rss reader
  
  // METODY
  // okno.vypisOkno();  <- metoda pro vypis informaci
  function okno() {
    // definice konstrukturu
    if (okno.arguments[0]=="RSS") {
      // jedná se o typ okna RSS čtečka
      this.typOkna = "RSS Reader";
      if (!okno.arguments[1]) {
        // pokud neni zadany druhy parametr = cesta, tak okno končí
        return false;
      } else {
        // paramet cesta je pritomny
        this.cesta = okno.arguments[1];
      }
    }
    this.vypisOkno() = new function() {
        document.write ("<b>");
        document.write(this.typOkna);
        document.write(", ");
        document.write(this.cesta);
        document.write("</b>");
        }
  }
  
  var prvni;
  prvni = new okno("RSS","http://neco.cz");
  prvni.vypisOkno();
  </script>
joe
Profil
var vypisOkno = function() { ... ;-)
peta
Profil
viz joe
this.vypisOkno = function() {...
function this.vypisOkno() {...
http://www.volny.cz/peter.mlich/www.htm#msub8
# odkaz: javascript-reference.info JS tahak, seznam metod
centi
Profil
nexus
Zápis s this. máš samozrejme správne. Nesprávne sú tam však tie zátvorky, ty predsa funkciu nevoláš, ale vytváraš:

this.vypisOkno = function() {


To new je tam tiež zbytočné.
phonkee
Profil *
Odporucam si pozriet jak.seznam.cz
javascriptova kniznica (hlavne v nej ClassMaker)...

to je REAL OOP..

;-)

enjoy

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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

0