30. marts 2004 - 17:11Der er
9 kommentarer og 1 løsning
Objekts funktion ind på onload
Hvordan dælen får man et object til at smide en af objektets funktioner ind på onload, eller en anden event ? Jeg har vedlagt et lille eksempel som gerne skulle vise hvad det er jeg vil. Eneste krav til browser er IE6+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> <script type="text/javascript"> function obj(){ this.parameters=arguments; this.speak=function(){ alert(this.parameters[0]); } onload = this.speak; // } var test = new obj('Der er mig der snakker'); var test2 = new obj('Der er mig der snakker 2'); </script> </head> <body>
Anyway ... i callback-funktioner henviser 'this' til objektet, der udløser event'en. Du skal i stedet oprette en variable, der i objektets 'instantierings-øjeblik' peger på objektet selv - og så referere til denne variabel i callback-funktionen. F.eks:
function obj() { var oMe = this; this.parameters=arguments; this.speak=function(){ alert(this.parameters[0]); } window.onload = oMe.speak; // }
Hehe ... ja, OOP kan være lidt svært i begyndelsen - men det er en fantastisk måde at programmere på i længden. Når man begynder at OOP'e, har man tilbøjelighed til at lave overkill (for en mand med en ny hammer, kommer alt til at ligne søm) - men når den første begejstring har lagt sig, falder man normalt ind i en fornuftig rutine. Det er jo ikke altid, det er en fordel med OOP - men når det er, er det somregel en _kæmpe_ fordel ;o)
... og jeg takker naturligvis for points
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.