Kimble Skrevet 6. april 2007 Del Skrevet 6. april 2007 (endret) Sliter litt med noe som minner litt om private klasser i java. Det er ikke så lett å forklare så jeg har laget en liten kodesnutt for å vise hva jeg mener. function Panel() { this.tittel = "Innstillinger"; var knapp = document.createElement("input"); knapp.setAttribute("type", "button"); knapp.onclick = function(hendelse) { // Her vil jeg gjerne ha tilgang til tittel. // this referer her til knapp og ikke til Panel som jeg har litt lyst til at den skal gjøre :) } } Er det noen enkel å grei måte å få tilgang til tittel fra onclick funksjonen eller er det ikke mulig? Hittil har jeg jukset det til, men etterhvert som koden min vokser begynner juksingen å utgjøre et unødvendig mange funksjonskall. Endret 6. april 2007 av astrox Lenke til kommentar
Kagee Skrevet 7. april 2007 Del Skrevet 7. april 2007 Du har prøvd å bruke bare "tittel" i den innerste funksjonsdeklarasjonen? Du kunne ikke legge ved et levende eksempel - jeg har litt problemer med å få dette til å gjøre noe som helst. Lenke til kommentar
Kimble Skrevet 7. april 2007 Forfatter Del Skrevet 7. april 2007 Scriptet mitt begynner å bli ganske komplekst så jeg skrev en liten kodesnutt for å illustrere hva jeg mener. Det er ikke meningen at eksemplet skal virke Ah.. fant faktisk ut av det nå. Sånn som det står nå er ikke tittel definert i den inneste funksjonen, men dersom jeg deklarer var tittel istedenfor this.tittel i den ytterste funksjonen ble det mulig å få tak i den. Jeg trodde ikke den innerste funksjonen var med i det scopet var tittel ble definert for. Takk for hintet Lenke til kommentar
Kagee Skrevet 7. april 2007 Del Skrevet 7. april 2007 (endret) To keep JavaScript from mixing up same-name variables, put var in front of your variables as you declare them. A variable inside a function that's declared with var is called a local variable, and it only exists inside that function. In general, you want your variables to be local whenever possible. Det blir vel det samme som private * tittel i java, men jeg tror dette stemmer: Hvis du bruker > Er den tilgjenelig for this.tittel ="Title" > BARE for fuksjonen som referes til i this var tittel ="Title" > Bare for den inneholdene funksjonen og funksjoner inne denne. tittel ="Title" > ALT (globalt i dokumentet) Skal sette opp et prøveark for å sjekke dette så snart jeg får tid. Endret 7. april 2007 av Kagee Lenke til kommentar
Kimble Skrevet 7. april 2007 Forfatter Del Skrevet 7. april 2007 Det stemmer nok det. Defineres en variabel med var blir den tilgjengelig i det scopet der den er definert. Lenke til kommentar
Kagee Skrevet 7. april 2007 Del Skrevet 7. april 2007 Så kommer det store spørsmålet - gjør de tre store nettleserne dette likt? Forhåpentligvis er det et krav fra js/emca-spesifikasjonen hvordan dette skal behandles. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå