Ik heb m'n probleem al teruggebracht naar het voglende stukje code
In geval 1 en 2 krijg ik een alert met "undefined" erin, en in geval 3 wel netjes een alert met "MyLabel". Het lijkt er dus op dat vanwege de de document.attachEvent hij vanuit een andere context gaat denken en voor 'this' niet meer MyObject ziet. Iemand een idee hoe ik het eerste geval werkende kan krijgen? Het gaat hier volgens mij om een scope probleem.
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
25
| <script type="text/javascript" language="JavaScript"> <!-- function MyObject() { this.label = "MyLabel"; } MyObject.prototype.print = function() { alert( this.label ); } MyObject.prototype.get = function() { return this.label; } var myObject = new MyObject(); document.attachEvent( 'onmouseup', myObject.print ); // geval 1: werkt niet in IE document.addEventListener( 'mouseup', myObject.print, false ); // geval 2: werkt niet in FF //alert( myObject.get() ); // geval 3: werkt wel --> </script> |
In geval 1 en 2 krijg ik een alert met "undefined" erin, en in geval 3 wel netjes een alert met "MyLabel". Het lijkt er dus op dat vanwege de de document.attachEvent hij vanuit een andere context gaat denken en voor 'this' niet meer MyObject ziet. Iemand een idee hoe ik het eerste geval werkende kan krijgen? Het gaat hier volgens mij om een scope probleem.
edit:
Even uitgelegd dat FF ook niet werkt
Even uitgelegd dat FF ook niet werkt
[ Voor 12% gewijzigd door Krooswijk.com op 31-03-2008 11:18 ]