Szerző Téma: Objektumok  (Megtekintve 2836 alkalommal)

0 Felhasználó és 1 vendég van a témában

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Objektumok
« Válasz #23 Dátum: 2010. szeptember 09., 22:13:19 »
csak annyit tesz, hogy meghívja a pos függvényt. Igazából nem értem, hogy ezért miért változik meg a this.
A szam = 2; sem hívja meg a 2-est. Ez csak egyszerű értékadás. De nem magyarázom. MadBence megtette helyettem :)
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.630
  • Twitterista :)
    • Blogom
Re: Objektumok
« Válasz #22 Dátum: 2010. szeptember 09., 20:48:02 »
2 sort köll átírni:
   $("#"+info.mcontainer).css({
        "position":"fixed",
        "z-index":"10",
        "left":cursor.x+"px",
        "top":cursor.y+"px"
    });
Ezt erre: (ha az egérre rakod a dobozt, még jóhogy lefut az onmouseout, sőt, ha gyorsan mozgatod, még így is ráfuthat. igaziból erre csak a IE tud jó megoldást onmouseenter, onmouseleave)
   $("#"+info.mcontainer).css({
        "position":"fixed",
        "z-index":"10",
        "left":(cursor.x+10)+"px",
        "top":(cursor.y+10)+"px"
    });
Aztán ugye itt meg azért lesz a this a document, mert csak. te azt akartad írni, hogy ha mozgatod az egeret, akkor fusson le az info-n a pos(e) függvény. Node ez nem azt jelenti. a document.onmousemove legyen maga az info.pos függvény (mintha csak az info.pos helyére beírnád a függvény törzsét).
Ha beburkolod, máris jól fogja tudni:
   document.onmousemove=info.pos;ezt beburkolod, így a this már az info lesz :)
   document.onmousemove=function(e){info.pos(e);};
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Nem elérhető Ati

  • Felhasználó
  • Hozzászólások: 48
Re: Objektumok
« Válasz #21 Dátum: 2010. szeptember 09., 15:59:04 »
 :wacko: :wacko: Az elején én is gondoltam rá, hogy a document.onmousemove miatt, mert csak ebben külömbözött a pos metódus a többitől, de arra gondoltam, hogy a document.onmousemove csak annyit tesz, hogy meghívja a pos függvényt. Igazából nem értem, hogy ezért miért változik meg a this.

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Objektumok
« Válasz #20 Dátum: 2010. szeptember 09., 12:52:55 »
Bevallom, én is gyakran keverem hogy mi hogy is van. Ilyen felépítéssel tényleg elérhetők a tulajdonságok this-el is. Viszont a pos metódust átadtad a document.onmousemove -nak. És akkor a this már gondolom a document objektumra mutat. Most nincs időm jobban elemezni mit miért. Talán majd este. 
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Ati

  • Felhasználó
  • Hozzászólások: 48
Re: Objektumok
« Válasz #19 Dátum: 2010. szeptember 09., 09:02:09 »
 :D Ezt nem tudtam :'(, azt hittem, hogy egy objektum metódusában a this magára az objektumra hivatkozik. De írtam js ben egy szerkesztőt, és nem értem, hogy abban a this-el hivatkozok az objektum változóira és müködik.

Pl.
Kód: Javascript
  1. var editor=new Object();
  2. editor.textarea_id="editor_input";
  3. editor.codes=new Array();
  4.  
  5. editor.codes[0]=["Kövér","KEP","[b]","[/b]"];
  6. editor.codes[1]=["Dölt","KEP","[i]","[/i]"];
  7. editor.codes[2]=["Aláhúzott","KEP","[u]","[/u]"];
  8. editor.codes[3]=["Jobbra igazít","KEP","[left]","[/left]"];
  9. editor.codes[4]=["Középre igazít","KEP","[center]","[/center]"];
  10. editor.codes[5]=["Balra igazít","KEP","[right]","[/right]"];
  11. editor.codes[6]=["NEV","KEP","[KEZDO_KOD]","[/ZARO_KOD]"];
  12. editor.codes[7]=["NEV","KEP","[KEZDO_KOD]","[/ZARO_KOD]"];
  13. editor.codes[8]=["NEV","KEP","[KEZDO_KOD]","[/ZARO_KOD]"];
  14.  
  15. editor.load=function(options)
  16. {
  17.     var set={
  18.         div:options.div,
  19.         rows:(options.rows ? options.rows : 8),
  20.         cols:(options.cols ? options.cols : 64),
  21.         class:(options.classs ? optons.classs : "editor"),
  22.         menuClass:(options.menuClass ? options.menuClass : "editor_menu"),
  23.         menuItemClass:(options.menuItemClass ? options.menuItemClass : "editor_menu_item")
  24.     };
  25.     var menu="", input="";
  26.    
  27.     menu+="<div class=\""+set.menuClass+"\">";
  28.     for(var i=0;i<this.codes.length;i++){
  29.         menu+="<img src='"+this.codes[i][1]+"' class='"+set.menuItemClass+"' alt='"+this.codes[i][0]+"' ";
  30.         menu+="onclick='editor.insert(\""+this.codes[i][2]+"\", \""+this.codes[i][3]+"\");' />";
  31.     }
  32.     menu+="</div>";
  33.    
  34.     input+="<textarea id='"+this.textarea_id+"' rows='"+set.rows+"' cols='"+set.cols+"' class='"+set.class+"'>";
  35.     input+="</textarea>"
  36.    
  37.     document.getElementById(set.div).innerHTML=menu+input;
  38.     return true;
  39. }
  40.  

Ebben a részben miért megy rendesen? Rendesen elkészíti a szerkesztőt, peddig a this akkor a metóduson belül önmagára hivatkozik, vagyis nem az objektum változóit kellene elérje. Miért van ez?? :blub: :-\

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Objektumok
« Válasz #18 Dátum: 2010. szeptember 08., 22:38:10 »
Szia

this-el az adott függvényre hivatkozhatsz mindig. Így az open és close metódusokban is rosszra hivatkozol. Mert azoknak nincs olyan tulajdonsága. Csak az info-nak. A pos metódusban info-ként hivatkoztál az objektumra, nem this-el. Helyesen tetted, de mivel máshol nem, ezért nem is változik az értéke.
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Ati

  • Felhasználó
  • Hozzászólások: 48
Re: Objektumok
« Válasz #17 Dátum: 2010. szeptember 08., 11:03:27 »
Sziasztok,

készítettem egy objektumot, ami annyit kellene csináljon, hogy-ha az egérrel a képre megyek akkor kis szövegmezőbe megjeleniti a kép alt-tartalmát, és ha a képen belül viszem az egeret akkor a szöveg doboz követi.

A javascript rész:

Kód: Javascript
  1. var info=new Object();
  2.  
  3. info.opened=false;
  4. info.mcontainer="infobox";
  5. info.container="infocontent";
  6.  
  7. info.pos=function(ev)
  8. {
  9.     //tesztel
  10.     //document.getElementById("run").innerHTML+="info.pos:"+this.opened+"<br />";
  11.    
  12.     if (!info.opened) return true;
  13.     ev=ev||window.Event;
  14.     var cursor={x:0,y:0};
  15.     if (ev.pageX || ev.pageY){
  16.         cursor.x=ev.pageX;
  17.         cursor.y=ev.pageY;
  18.     }else{
  19.         cursor.x=ev.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)-document.documentElement.clientLeft;
  20.         cursor.y=ev.clientY+(document.documentElement.scrollTop||document.body.scrollTop)-document.documentElement.clientTop;
  21.     }
  22.     $("#"+info.mcontainer).css({
  23.         "position":"fixed",
  24.         "z-index":"10",
  25.         "left":cursor.x+"px",
  26.         "top":cursor.y+"px"
  27.     });
  28.     return true;
  29. }
  30.  
  31. info.open=function(object)
  32. {
  33.     //tesztel
  34.     document.getElementById("run").innerHTML+="open: "+this.opened+"<br />";
  35.    
  36.     if (this.opened) return true;
  37.     document.getElementById(this.container).innerHTML=object.alt;
  38.     this.opened=true;
  39.     $("#"+this.mcontainer).fadeIn("slow");
  40.     return true;
  41. }
  42.  
  43. info.close=function()
  44. {
  45.     if (!this.opened) return true;
  46.     $("#"+this.mcontainer).fadeOut("slow");
  47.     document.getElementById(this.container).innerHTML="";
  48.     this.opened=false;
  49.     return true;
  50. }
  51. function init()
  52. {
  53.     if (window.Event){
  54.         document.captureEvents(Event.MOUSEMOVE);
  55.     }
  56.     document.onmousemove=info.pos;
  57. }
  58. window.onload=init;
  59.  

HTML rész:

Kód: HTML
  1. <img src="kep.jpg" width="100px" height="100px" onMouseOver="info.open(this);" onMouseOut="info.close();" alt="Ez valami"  />
  2.         <div id="infobox"><div id="infocontent"></div></div>
  3.         <div id="run"></div>
  4.  

Szóval az lenne az egyik problémám, hogy az open függvényben a this.opened, meg this.mcontainer rendes müködik, viszont a pos függvényben a this.opened és this.mcontainer is undefined az értéke, ha info.opened-el hivatkozok akkor viszont jó. Miért csinálja ezt? És a ha az open függvényben a opened értékét igazra álítom akkor is a pos függvényben marad az alapértelmezett, tehát nem változik. Ezért a szövegdoboz követi az egeret csak villog. Mi lehet a probléma??

Elérhető Keveqiah

  • Globális moderátor
  • Teljes tag
  • *****
  • Hozzászólások: 2.332
  • Kisb
    • Keveqiah
Re: Objektumok
« Válasz #16 Dátum: 2010. szeptember 02., 20:58:52 »
Egy kis segítség kellene. :)

Az oldal betöltődése során nincs hiba. Az alap változók is szépen behelyettesítődnek, viszont, ha kattintanak, ezt kapom.

Idézet
Hiba: this.CreateFrame is not a function
Forrásfájl: http://kurl.host/assets/js/api.js
Sor: 62

sztornó.. elhamarkodott kérdés. :/
« Utoljára szerkesztve: 2010. szeptember 02., 21:49:30 írta Suttogó »
"Gonosz vagyok. Ez ugyebár nem hit dolga."
"Egy ember halála tragédia, ezrek halála statisztika."

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: Objektumok
« Válasz #15 Dátum: 2010. május 15., 16:55:55 »
Előnyös, ha nem adod ugyanazt a nevet a változódnak és a függvénynek. Mert felülírod a függvényt saját példányával. Teljes káosz.
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Satya

  • Teljes tag
  • ***
  • Hozzászólások: 1.155
Re: Objektumok
« Válasz #14 Dátum: 2010. május 15., 16:39:47 »
Hehe, alig pont egy éve írtam ide utoljára. Hogy repül az idő. :dontgetit:

Na, de az van, hogy egy elem szelektor osztályt szeretnék létrehozni ami a konstruktorban szelektál, ezt annak alapján írtam meg ahogyan Warner írta régebben Kisgabónak, de az sem oldotta meg a problémám, anonymus osztály maradt az element. :wacko:

H.üzenet:
Idézet
element is not a constructor

Kód:
Kód: Javascript
  1. function element(options)
  2. {
  3.         //Ellenőrizzük, hogy csak az elem azonosítója vagy csak az osztályneve lett e átadva.
  4.         if(typeof(options.id) != "undefined" && typeof(options.clss) == "undefined")
  5.         {
  6.                 //Eltároljuk az elem azonosítóját késöbbi felhasználására.
  7.                 this.id = options.id;
  8.                 //Ellenőrizzük, hogy létezik e az elem.
  9.                 if(typeof(document.getElementById(this.id)) != "undefined")
  10.                 {
  11.                 }
  12.                 else
  13.                 {
  14.                         //Figyelmeztetjük a felhasználót, hogy nem létezik az elem.
  15.                         alert("Hiba!/nNem létezik ezzel az azonosítóval (" + this.id + ") elem.");
  16.                 }
  17.         }
  18. }
  19.  
  20. window.onclick = function()
  21. {
  22.         var element = new element({id: "a"});
  23. }
  24.  
A hiba csak akkor áll fent, ha valamilyen eseményt adok a példányosításhoz. Az esemény ahhoz kell, hogy addigra létezzen az a bizonyos elem.
Internet Explorer - legjobb böngésző egy másik böngésző letöltésére.

Nem elérhető Satya

  • Teljes tag
  • ***
  • Hozzászólások: 1.155
Re: Objektumok
« Válasz #13 Dátum: 2009. május 23., 08:46:35 »
Zsír. :D

Úgy kerül AJAX-ba, hogy egy hiperszuper AJAX-os cuccon dolgozom és ott estem a hibába. Ezért írtam reflexszerűen AJAX-ba.
Internet Explorer - legjobb böngésző egy másik böngésző letöltésére.

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Re: AJAX
« Válasz #12 Dátum: 2009. május 22., 23:02:47 »
fordítok neked: missing kettőspont after property id

na jó mégjobban :D
hiányzik a kettőspont a tulajdonság azonosító után

Ugyebár a prototype egy objektum. A { és } jelek között egy tömb jön létre. (A tömb is objektum)
Az asszociatív tömbök így épülnek fel:

Kód: Javascript
  1. var tomb = {
  2.     azonosito: ertek,
  3.     azonosito2: ertek2
  4. }
Persze lehetne string is az azonosító és az érték is. de itt oop-nél a változónév lesz a kulcs. És persze a var se kell.


De hogy ez hogy került az AJAX témába azt nem tudom  :confused:
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető Satya

  • Teljes tag
  • ***
  • Hozzászólások: 1.155
Re: AJAX
« Válasz #11 Dátum: 2009. május 22., 18:46:15 »
Hali.

Mai nap kedvem támadt egy kicsit objektum orientálódni JS-ben. Két féle módszerrel "játszadoztam" és hát tapasztalataim alapján a második módszerem nem működik. Egy hibát kaptam, mégpedig azt, hogy hiányzik a tulajdonság azonosító? :shock: Mi az tulajdonság azonosító?

Kód: Javascript
  1. function a(){
  2. }
  3.  
  4. a.prototype = {
  5.       var b = 'c';
  6. }
  7.  

Azt amit akartam azt sikerült megoldanom, de kíváncsi lennék, hogy ez miért nem jó. A friss könyvemben egyik példában használnak ilyet is.
Internet Explorer - legjobb böngésző egy másik böngésző letöltésére.

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.630
  • Twitterista :)
    • Blogom
Re: Objektumok
« Válasz #10 Dátum: 2009. január 26., 19:26:18 »
Hoppá tényleg :), azzal majd később szórakozok...
Az a baj, hogy a this.xmlhttp eleve undefined  :confused:. I'm confused... nem értem.

Áháháááááá!  :D megvan!
this.xmlhttp.onreadystatechange=this._ReadyStateChange;Ebben a sorban rakom hozzá a saját kezelőmet. Csakhogy a this._ReadyStateChange-ben a this már az eredeti this.xmlhttp-re fog hivatkozni

Nem  :-\, sajnos így sem működik, de már hibát sem ad. Azt mondja a this-nek nincs is semmilyen tulajdonsága.

Na hál istennek müxik :) Megizzasztott
Kód: Javascript
  1. var Rss={
  2.         Init:function()
  3.         {
  4.                 this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  5.         },
  6.         GetFeed:function(url, callback)
  7.         {
  8.                 var self=this;
  9.                 this.xmlhttp.open("GET", url, true);
  10.                 this.xmlhttp.onreadystatechange=function()
  11.                 {
  12.                         self._ReadyStateChange(callback);
  13.                 }
  14.                 this.xmlhttp.send(null);
  15.         },
  16.         _ReadyStateChange:function(callback)
  17.         {
  18.                 if(this.xmlhttp.readyState == 4)
  19.                 {
  20.                         if(this.xmlhttp.status == 200)
  21.                         {
  22.                                 callback(this.xmlhttp.responseText);   
  23.                         }
  24.                         else
  25.                         {
  26.                                 Debug.Trace(this.xmlhttp.getAllResponseHeaders());
  27.                         }
  28.                 }
  29.         }
  30. }
  31. Rss.Init();
  32. Rss.GetFeed("http://madbence.freeblog.hu/feed", function(bar){Debug.Trace(bar);});
« Utoljára szerkesztve: 2009. január 26., 19:53:23 írta MadBence »
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Re: Objektumok
« Válasz #9 Dátum: 2009. január 26., 19:17:39 »
A callbacket elhagyod a GetFeed()-ben, de azt mondod már a readyState-nél elakad. Írasd ki milyen propertyjei vannak a this.xmlhttp-nek.

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.630
  • Twitterista :)
    • Blogom
Re: Objektumok
« Válasz #8 Dátum: 2009. január 26., 18:41:53 »
Valaki mondja meg, hogy miért hiszi a _ReadyStateChange, hogy nincs a this-nek xmlhttp változója :), nem tudok rajönni.

Kód: Javascript
  1. var Rss={
  2.         Init:function()
  3.         {
  4.                 this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  5.         },
  6.         GetFeed:function(url, callback)
  7.         {
  8.                 this.xmlhttp.open("GET", url, true);
  9.                 this.xmlhttp.onreadystatechange=this._ReadyStateChange;
  10.                 this.xmlhttp.send(null);
  11.         },
  12.         _ReadyStateChange:function()
  13.         {
  14.                 if(this.xmlhttp.readyState == 4)
  15.                 {
  16.                         if(this.xmlhttp.status == 200)
  17.                         {
  18.                                 callback(this.xmlhttp.responseXML);    
  19.                         }
  20.                         else
  21.                         {
  22.                                 Debug.Trace(xml.getAllResponseHeaders());
  23.                         }
  24.                 }
  25.         }
  26. }
  27. Rss.Init();
  28. Rss.GetFeed("akarmi", function(){})
A kód JScript, de nem hiszem, hogy pont ebben van különbség. A _ReadyStateChange lefut rendesen 4-szer, ahogy kell, a rinyál a változó miatt.
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Objektumok
« Válasz #7 Dátum: 2008. augusztus 13., 20:23:23 »
Kösz Rimelek, ezt nem tudtam :)

JavaScript esetében azonban hasznos, hogy az objektumok létrehozás után is szabadon bővíthetők újabb tulajdonságokkal és tagfüggvényekkel.
Pl.:
Kód: Javascript
  1. var ob = new Object();
  2. ob.valtozo = "érték";
  3.  

De ez az osztályokra is igaz, a "prototípust" kell módosítani:
Kód: Javascript
  1. function header(level)
  2. {
  3. return("<h" + level + ">" + this.toString() + "</h" + level + ">");
  4. }
  5. String.prototype.asHeader = header;
  6.  
  7. document.write("PHP Studio".asHeader(1));
  8.  

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Objektumok
« Válasz #6 Dátum: 2008. augusztus 13., 20:14:27 »
Ja hogy az egy tömb :megashok:

Hát ja, kavar :D

Nem elérhető <madbence />

  • Teljes tag
  • ***
  • Hozzászólások: 1.630
  • Twitterista :)
    • Blogom
Objektumok
« Válasz #5 Dátum: 2008. augusztus 13., 20:12:55 »
Én mindig is szerettem, mert jól bele lehet kavarodni :)
mi chuck norris email címe? gmail@chucknorris.com
Blog: napszemuvegbe.tumblr.com
Twitter: twitter.com/madbence

Nem elérhető Rimelek

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 8.942
    • rimelek.hu
Objektumok
« Válasz #4 Dátum: 2008. augusztus 13., 20:10:21 »
(Bár megjegyzem, hogy az osztály törzsében ez a kettőspontos értékadás nekem is újdonság :D).

A kettőspontos értékadás egy asszociatív tömböt jelent. aho a kettőspont előtt van a kulcs, és utána a az érték. az asszociatív tömböt pedig a kapcsos zárójelek között lehet megadni.

Ez egy "normál" numerikus indexelésű tömb, csak az értékekkel
Kód: Javascript
  1. var tomb = [ertek1, ertek2,ertek3];
Ez pedig egy asszociatív tömb:
Kód: Javascript
  1. var tomb = { kulcs1 : ertek1 kulcs2 : ertek22, kulcs3 : ertek3 };

És mivel egy tömb maga is objektum, így lesz az egészből objektum :)

Szerintem egész jó módszer.
Egyszerűen létezem, és lézengek a Földön,
mint idióta szellem, kinek kastélya a börtön.

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Objektumok
« Válasz #3 Dátum: 2008. augusztus 13., 20:04:10 »
Most teljesen leesett a TinyMCE módszere. Nem is gondoltam volna... A példányosítható osztály kreálása meg valami katasztrófa :D Tényleg primitív. Osztálynak az is a lényege, hogy ne legyenek szétszórva a függvények a fájlban, hanem egy törzsben, egy behúzással beljebb legyenek. Legalábbis nekem ezt is jelenti :). Ezt máshogy kellet volna kitalálni :)

Elérhető Warner

  • Adminisztrátor
  • Őstag
  • *****
  • Hozzászólások: 6.438
    • CodeNet
Objektumok
« Válasz #2 Dátum: 2008. augusztus 13., 19:55:45 »
A TinyMCE ezen kódja egy anonymus osztályt hoz létre. Ez azt jelenti, hogy nincsen neki neve, definiáláskor készítve lesz belőle egy objektum, de utána már nem lehet elérni az osztályt. Tehát az osztaly változó egy objektum, nem egy osztály, emiatt nem tudod később példányosítani.
(Bár megjegyzem, hogy az osztály törzsében ez a kettőspontos értékadás nekem is újdonság :D).
Ez a kód pedig hasonló módon egy anonymus függvényt készít az osztaly objektum fuggveny tulajdonságába:
Kód: Javascript
  1. fuggveny : function(param1, param2) {
  2.     //függvény törzse
  3.   }
Ha kipróbálod, látszik, hogy objektum:
Kód: Javascript
  1. document.write(osztaly.valtozo1);

Ha neked nem ilyen kell, hanem olyan osztály, amiből többször is tudsz példányosítani, akkor mutatom azt:
Kód: Javascript
  1. function Osztaly(nev, kor)
  2. {
  3. this.nev = nev;
  4. this.kor = kor;
  5. this.lakcim; // Ennek nem adok értéket, nem muszáj mindnek a konstruktorban.
  6. }
Ez lényegében egy osztálykonstruktort definiál függvényként, amit már lehet példányosítani:
Kód: Javascript
  1. var peldany = new Osztaly("Warner", 18);

Tagfüggvényt úgy tudsz belerakni az osztályba, hogy külön megírod a függvényt majd berakod az osztály egy tulajdonságába:
Kód: Javascript
  1. function Kiir()
  2. {
  3. document.write("Név: " + this.nev + "<br />Kor: " + this.kor);
  4. }
  5.  
  6. function Osztaly(nev, kor)
  7. {
  8. this.nev = nev;
  9. this.kor = kor;
  10. this.lakcim; // Ennek nem adok értéket, nem muszáj mindnek a konstruktorban.
  11. this.Kiiras =Kiir;
  12. }
  13.  
  14. var peldany = new Osztaly("Warner", 18);
  15. peldany.Kiiras();
  16.  

Ha primitívnek érzed a JS objektumkezelését, akkor tökéletesen jól érzed :)

Nem elérhető KisGabo

  • Törzstag
  • **
  • Hozzászólások: 919
  • Ifj.
Objektumok
« Válasz #1 Dátum: 2008. augusztus 13., 19:27:17 »
Bocs, hogy béna kérdés, de JS-ben nem vagyok otthon. Néztem googlén az osztályok létrehozását JS-ben. Nah, amit ott találtam, valahogy nem értettem meg a logikáját... Ezért kilestem TinyMCE-ből, az hogy csinálja. Így:
Kód: Javascript
  1. var osztaly = {
  2.   valtozo1 : "érték",
  3.   valtozo2 : "érték",
  4.   fuggveny : function(param1, param2) {
  5.     //függvény törzse
  6.   }
  7. }
  8.  

Az oldalon létrehozok egy példányt, így: var peldany = new osztaly;

Mozilla hibakonzol:
Idézet
osztaly is not a constructor

Értem, osztaly nem egy konstruktőr... De nem nagyon tudok a hibaüzenetből kiindulni. Azt én is tudom, hogy nem konstrüktőr :D
Mi a gond? Köszi
« Utoljára szerkesztve: 2008. augusztus 13., 19:38:31 írta KisGabo »