Toon posts:

[vbscript/asp] oop js this equivalent

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik zit nogal te stunten met oop (eigenlijk oos dus :P) in asp (vbscript).

hierover is verdomd weinig documentatie te vinden die verder gaat dan uitleggen wat een class, properties en methods zijn. Dus als iemand hier nog goede resources over weet graag (bij 4guys overigens wel wat geinige faux inheritance implementatie gezien)

nu heb ik eigenlijk een heel simpel klein dingetje, in een method van een class voeg ik een childelement toe, nu wil ik dan meteen die class zelf als parent setten van het childelement, nu moet ik dus een referentie hebben naar het parentobject zelf, in javascript is dat gewoon met "this", "self" kom je ook nog wel eens tegen, maar nu kom ik er niet uit wat ik moet doen

3e vraag: als ik een in een class een private property mfirstChild heb (die naar een object wijst dus) en daar een public property get firstchild firstchild = mfirstchild end property mee doe, dan kan ik hem niet benaderen van buitenaf, en als ik die property gewoon public maak wel (wat ik eigenlijk niet wil, want hij moet readonly zijn) hoe komt dit en hoe los ik het op?

dus: goede resources zijn erg gewenst en wat is in hemelsnaam de goede referentie? en what about die private public zooi?

  • Mart!
  • Registratie: Februari 2000
  • Laatst online: 23-08 14:17
M.b.t. punt 1: Kijk eens naar informatie over classes in Visual Basic, dit werkt nagenoeg hetzelfde als classes in VBScript. N.b. helaas zijn classes in VB(script) niet volledig OO, dus veel OO eigenschappen zijn niet geimplementeerd.

M.b.t. punt 2: Een referentie naar jezelf doe je in VB met "me", dus ik denk dat dat in vbscript ook werkt.

M.b.t. punt 3: Je kunt het beste intern binnen de class een variabele definieren en deze d.m.v. de property get en property let statements lezen/updaten. pseudo code:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
Class Test 

  dim iTeller

  pubic property let Teller(t)
    iTeller = t
  End property

  public property get Teller()
    Teller = iTeller
  End property

End Class

n.b. dit is pseudo, syntax ken ik niet uit m'n hoofd, vandaar

[ Voor 10% gewijzigd door Mart! op 14-12-2002 16:44 ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Ik zie het voordeel niet echt van het gebruik van classes in VBScript. In ASP + vbscript ben je volgens mij echt veelal bezig met het aanroepen van COM objects, geschreven in bv VC++ of VB. Vziw ondersteunt VBScript ook geen inheritence of andere OO zaken. Je zou wel voor meer info http://msdn.microsoft.com/scripting kunnen bekijken. Alle info omtrent VBscript en JScript vind je daar.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Verwijderd

Topicstarter
bijna, goed, ipv dim moet het private zijn. en aangezien die iteller in mijn geval een object is, moet let set worden, maar die kan weg want readonly, maar dat werkt dus niet, als ik nu response.write(test.teller.value) (ofzoiets) wil doen werkt het niet, maar wel als ik teller public maak, probleem is dus dat je hem dan kan veranderen en dat wil ik tegengaan.

me werkt idd, 't is ookwat dat het in elke taal weer anders is :(

en het voordeel van oop in asp? stel dat ik een object maak dat een tabel van een database uitleest, dan is het enige wat je moet doen de library includen en het ingeven van het dbpath, een tabelnaam en iets van layout parameters. Paar regels code en veel overzichtelijker (geen inheritance is wel redelijk vervelend, maar daar had ik op 4guys iets over gezien, ben het nu alleen effe kwijt)

[ Voor 34% gewijzigd door Verwijderd op 14-12-2002 17:02 ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
en het voordeel van oop in asp? stel dat ik een object maak dat een tabel van een database uitleest, dan is het enige wat je moet doen de library includen en het ingeven van het dbpath, een tabelnaam en iets van layout parameters. Paar regels code en veel overzichtelijker (geen inheritance is wel redelijk vervelend, maar daar had ik op 4guys iets over gezien, ben het nu alleen effe kwijt)
Dat is mateloos inefficient. ASP met VBScript blijft interpreted code. Beter is een VB of VC++ com object te maken dat een disconnected ADO recordset object teruggeeft waarin je data zit. Kost ook een paar regels code in je asp script om deze aan te roepen, maar je hebt wel native code, geen interpreted code. Het includen van lappen asp script is verder helemaal niet overzichtelijk, want je hebt geen abstractie mbt je functionaliteit (dat je wel hebt wanneer je een n-tier-benadering neemt), en het lijkt alsof je weinig code hebt in 1 page, maar dat is niet zo: alle geinclude asp files worden eerst in de asp page gevoegd en daarna wordt de complete page geparsed. Dit kan sterk vertragend werken, ookal roep je maar 1 regel code aan.

Herbruikbaarheid van kleinere blokjes functionaliteit zoals een COM object dat bv een recordset oplevert die op meerdere pagina's gebruikt wordt, is veelal overzichtelijker, je focust bij het bouwen nl. op welke functionaliteit je waar stopt en hoe je die implementeert, niet alleen maar hoe je stukjes asp code kunt sharen over meerdere pages.

Maar goed, als jij vindt dat het efficienter en overzichtelijker is, wie ben ik dan :)

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com