iOS developer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function Ajax() { this.doMe = function() { // do pretty things } } var Ajax = new Ajax(); function Address() { this.init = function() { Ajax.doMe(); } } var Address = new Address(); |
Ok nu even serieus.
Google leverde dit op: http://clientside.cnet.co...pendencies-in-javascript/
[ Voor 31% gewijzigd door Setragasj op 30-03-2007 12:32 ]
<Typ een persoonlijk bericht>
Dan hebben wij dezelfde GoogleSetragasj schreef op vrijdag 30 maart 2007 @ 12:30:Ok nu even serieus.
Google leverde dit op: http://clientside.cnet.co...pendencies-in-javascript/
Even serieus, dat is een compleet framework waarin zij werken, en dan nog eens een voorstel van hoe iets eigenlijk wel niet zou moeten zijn.
Java of C++ compileert niet als Ajax niet aanwezig zou zijn. In PHP heb je require.
[ Voor 7% gewijzigd door BikkelZ op 30-03-2007 13:46 ]
iOS developer
1
2
3
4
| function require(file) { document.write('<script type="text/javascript" src="'+file+'"></script>'); } |
Als is dit natuurlijk niet echt een extend oid van een andere 'class' die je dan hebt.. Javascipt is sowieso niet echt oop, maar je kunt t wel n beetje faken schijnt het.
[ Voor 29% gewijzigd door Setragasj op 30-03-2007 13:52 ]
<Typ een persoonlijk bericht>
Je zou inderdaad wel een soort van require routine kunnen schrijven misschien. Eentje die ook een error gooit op het moment als het niet lukt liefst.
Er zijn best wat JavaScript frameworks waar ze met de prototypes van classes als Function gaan rommelen.
[ Voor 18% gewijzigd door BikkelZ op 30-03-2007 15:47 ]
iOS developer
Je bedoelt dat je een instance van Ajax wilt hebben, of wil je controleren of het js-bestand waarin die Ajax class staat ueberhaupt wel geladen is?BikkelZ schreef op vrijdag 30 maart 2007 @ 12:02:
Ik heb een Ajax class geschreven en mijn Address class heeft die altijd nodig om adressen te kunnen verifieren ten op zichte van een database. Kortom, voordat ik Address wil initieren moet ik dus al Ajax hebben.
Voor wat betreft het eerste is het het makkelijkst om met een singleton te werken:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| function Ajax() { if (this == window) return new Ajax(); if (Ajax.instance) return Ajax.instance; // stuff return (Ajax.instance = this); } function Something() { this.ajax = new Ajax(); // etc } |
In het 2e geval zou dit moeten werken:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| function Something() { if (!window.Ajax) { var script = document.createElement('script'); script.setAttribute('type', 'text/javascript'); script.setAttribute('src', 'ajax.js'); document.getElementsByTagName('head')[0].appendChild(script); } if (window.Ajax) this.ajax = new Ajax(); else throw('ClassNotFoundException'); // etc } |
Intentionally left blank