Ik kom een probleem tegen met de volgende code: (test case)
Heb al gezocht op GoT en Google, maar nog niks kunnen vinden. Weet iemand hier een oplossing voor?
Alvast bedankt!
JavaScript:
In [...] arr[arr.length] = [this.onderdelen[i] [...] gaat alles goed, maar in function() { self.testOnderdeel(self.onderdelen[i]); }]; verwijst i kennelijk naar de i die in het geheugen staat, waardoor deze altijd naar de laatste i (oftewel de index van het laatste element van de array waar ik doorheen loop) verwijst...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 Auto() { this.onderdelen = ['test', 'bla', 'fiets']; this.test = function() { var self = this; var arr = new Array(); for (var i = 0; i < this.onderdelen.length; i++) { // Add keyword item arr[arr.length] = [this.onderdelen[i], [], function() { self.testOnderdeel(self.onderdelen[i]); }]; } return arr; } this.testOnderdeel = function(index) { alert( 'testOnderdeel index = ' + index); } } var kar = new Auto(); kar.test(); |
Heb al gezocht op GoT en Google, maar nog niks kunnen vinden. Weet iemand hier een oplossing voor?
Alvast bedankt!
[ Voor 7% gewijzigd door Verwijderd op 03-03-2006 14:20 ]