Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JS] variable uit andere functie pakken

Pagina: 1
Acties:

  • Thomasv6
  • Registratie: December 2007
  • Laatst online: 08:38
Hallo allemaal,

Ik was weer even bezig met javascript, alleen nu heb ik in de ene functie een variable van een andere functie nodig. Het gaat om dit script:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function nieuws(result) 
{ 
    document.getElementById('nieuws').innerHTML = result; 
} 
function bewerken() 
{ 
    var the_form = document.getElementById('form'); 
    var post_string = ''; 

    post_string += 'bericht=' + the_form.bericht.value; 
    post_string += '&id=' + the_form.id.value;

    make_request('http://thomas.nachtverblijf.com/includes/pages/home.php?actie=bewerk', 'nieuws['+the_form.id.value+']', 'POST', post_string); 
} 


Dan heb ik in de functie nieuws, het id nodig.

Hoe los ik dit op, in php doe je dat met this ->. Maar hoe doe je dit in javascript? Precies hetzelfde? Of gaat het helemaal niet?

Mvg. Thomas

Verwijderd

Sorry, ik wil je graag helpen maar begrijp echt niet wat je bedoelt.

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Je vraag is mij ook niet helemaal duidelijk.
Je wilt de variabele id uit de functie 'bewerken' hebben maar die wordt helemaal niet gedeclareerd. Je doet wel iets met een id input veld. Als je bedoeld dat je de waarde uit dat veld ook in de functie 'bewerken' wilt gebruiken dan kan je dat gewoon zo doen:


JavaScript:
1
2
3
4
5
6
function nieuws(result) 
{ 
    document.getElementById('nieuws').innerHTML = result; 
    var the_form = document.getElementById('form'); 
    var id = the_form.id.value;
} 

  • Thomasv6
  • Registratie: December 2007
  • Laatst online: 08:38
Je hebt bijv. dit:

JavaScript:
1
2
3
4
5
6
function 1(){
             var id = 'blaat' + id2;
}
function 2(){
             var id2 = '33';
}


Je hebt bijv. zoiets als bovenstaande, hoe zorg je ervoor dat je die id2 in function 1 kan gebruiken.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 29-11 13:01
Niet. De variable zit dan in de scope van f2 en is dus veilig niet bereikbaar voor f1. Als je dit doet kan het wel:
JavaScript:
1
2
3
4
5
6
7
var id2='';
function 1(){
             var id = 'blaat' + id2;
}
function 2(){
             id2 = '33';
}


Uitleg: Je variable valt nu in de globale scope. Die kan dus door alle functies bereikt worden.

Gebruik dit liever zo min mogelijk, aangezien je maar 1x een naam kan gebruiken, en je tevens heel je code door moet als je niet precies weet waar die variable aangepast wordt.
Alternatiefje:
JavaScript:
1
2
3
4
5
6
7
8
function 1(id2param){
             var id = 'blaat' + id2param;
}
function 2(){
             var id2 = '33';
}

alert(function1(function2));

[ Voor 48% gewijzigd door djluc op 10-12-2007 19:13 ]


  • gvanh
  • Registratie: April 2003
  • Laatst online: 02-12-2023

gvanh

Webdeveloper

Als jij het over PHP en $this-> hebt, dan heb je het over objecten in PHP.
JavaScript kent op zich geen classes zoals als PHP die kent, maar je kunt JavaScript functies wel gebruiken als objecten, met hun eigen scope. Zo kun je bijvoorbeeld zo te werk gaan:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function myObject() {

  var _private = 1;

  this.public = 2;

  this.init = function() {
    alert(_private);
    alert(this.public);
  }

  function _privateFunction() {
    alert(_private);
    alert(this.public);
  }

} // myObject

var myInstance = new myObject;
myInstance.init();   // dit kan wel ... want init is toegankelijk van buitenaf.
alert(myInstance.public);   // dit kan ook ... want de variabele public is ook toegankelijk van buitenaf.

myInstance ._privateFunction(); // dit kan niet, want _privateFunction is alleen binnen het object aanspreekbaar.
alert(myInstance._private);  // dit kan ook niet, want _private is alleen binnen het object aanspreekbaar.


Op deze manier kun je dus je (OOP) manier van programmeren in PHP benaderen. Ik doe dat zelf erg veel en het is voor mij heel overzichtelijk en prettig programmeren.
Pagina: 1