JavaScript Class Inheritance

Tags:    javascript

(Ja jeg ved godt der ikke er "classes" i JavaScript)

Jeg er ved at opbygge mit eget framework, men er stødt på et problem. Har fundet MooTools DOM Extender meget brugbar, og har besluttet at mit framework skal have noget af det samme.
Hvordan gør jeg det muligt at skrive:
Fold kodeboks ind/udKode 

I kender selvfølgelig $ funktionen.

Men eftersom addStyle er en funktion fra en af mine klasser ved jeg ikke hvordan jeg skal gøre den linje kode mulig.

Har prøvet med inheritFrom og prototype inheritance, men kan ikke få det til at virke.

Håber i kan hjælpe mig!



Dollarfunktionen er blot en wrapper metode for en Element klasse...

Fold kodeboks ind/udKode 


Men mootools er udsprunget af Prototype. Prototype har en object.extend, det må Mootools næsten også have.



$ dollarfunktionen er en getElement funktion...
Og er ikke sikker på at jeg forstod hvorfor du laver variablen this.dom ?



Det eksempel du lige har lavet returnere jo et Extender produkt.
Jeg skal bruge en helt normal DOM variabel som jeg stadig kan håndtere som en variabel man får ved: document.getElementById();

Jeg vil bare tilføje nogle funktioner.



Nu du har rodet dig ud i classes i javascript kan jeg klart anbefale Prototype ( www.prototypejs.org ) som har indbygget et objekt der hedder Class som kan bruges til at lave classes med. Det undestøgger nedarvning, constructor mm.

Klart et kig værd :D



Kender allerede prototypejs... Men ideen var at jeg ville lave mit eget framework, som ikke byggede på et andet.



Du kunne jo evt. slette alt andet kode fra frameworket og kun lade Class objektet stå, eller bygge dit eget Class objekt da det helt sikkert vil lette arbejdet med at extende standard objekterne



Har lige fundet ud af at jeg skal udvide ved hjælp af Element.Methods() Men følgene kode virker ikke:
Fold kodeboks ind/udKode 




t