Gå til innhold

Vanskelig(?) spørsmål om tilgang utenfor funksjone


Anbefalte innlegg

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 av astrox
Lenke til kommentar
Videoannonse
Annonse

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
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 av Kagee
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...