Javascript scoop constructor

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 07-10 14:06
Ik begrijp niet goed de scoop van in variable binnen een closure in javascript

Het lukt om een "DOM" element slimmer te maken, door aan de events een functie toe te wijzen.
Ik heb dit gedaan met een closure, met parameters(DOMElement,callbackfunctie)
Maar ik begrijp niet waarom ik de variable niet kan gebruiken van de closure, behalve dan om het event toe te wijzen.

Hier onder de JSfiddle die ik reeds heb gemaakt

https://jsfiddle.net/op22bnp7/

[ Voor 53% gewijzigd door g4wx3 op 31-01-2018 17:28 ]

http://www.softfocus.be/

Alle reacties


Acties:
  • 0 Henk 'm!

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 07-10 14:06
De fout zat blijkbaar niet in de scoop, maar in het feit dat $('#iets') een jquery object geeft, ipv een dom element. Vrij logisch ergens, hiermee kon het probleem makkelijk worden verholpen

https://jsfiddle.net/op22bnp7/3/

[ Voor 8% gewijzigd door g4wx3 op 31-01-2018 19:47 ]

http://www.softfocus.be/


Acties:
  • 0 Henk 'm!

  • kaassouffle
  • Registratie: Januari 2002
  • Laatst online: 07-10 16:43

kaassouffle

Medewerker v/d Maand

(volgens mij is het trouwens 'scope' ipv 'scoop' ;) )

Acties:
  • +1 Henk 'm!

  • DixxyJS
  • Registratie: Juni 2017
  • Laatst online: 14-09-2021
g4wx3 schreef op woensdag 31 januari 2018 @ 16:34:
Ik begrijp niet goed de scoop van in variable binnen een closure in javascript
Een closure is een functie met een bijbehorende omgeving van lokale variabelen met waarden.
De variabelen blijven na aanroep van de functie bestaan.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//voorbeeld 1
function parentFunc() {
  let localVar = "local";
  return function childFunc() {
    console.log(localVar);
  }
}
var child = parentFunc();
child(); //uitkomst in de console: "local"  

//voorbeeld 2
function getFunc(x) {
  return function add(number) {
    x += number;
    return x;
  }
}

var addNumber = getFunc(10); // hier krijgt x de waarde 10
console.log(addNumber(2)); // komt 12 uit want x is een lokaal geheugen in de parent function
console.log(addNumber(8)); // komt 20 uit want na aanroep van de eerste keer gaat het geheugen x niet verloren
console.log(addNumber(6)); // komt 26 uit enz..


//aanroep van buiten- en binnen-functie in één keer
var resultaat = getFunc(22)(28);
console.log(resultaat) //resultaat 50

[ Voor 3% gewijzigd door DixxyJS op 01-02-2018 00:17 ]