[JS] Class dependencies afvangen

Pagina: 1
Acties:

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24
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.

Onder Java C++ PHP etc snap ik dat wel. Maar hoe doe ik dat onder JavaScript?

iOS developer


  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 01-12 11:33

Setragasj

is using radars to communicate

Uhhh...... geen idee...

JavaScript:
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>


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24
Dan hebben wij dezelfde Google d:)b

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


  • Setragasj
  • Registratie: Augustus 2001
  • Laatst online: 01-12 11:33

Setragasj

is using radars to communicate

Naja je zou een functie kunnen gebruiken als dit om een require te faken..? :$

JavaScript:
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. :+ }:O

[ Voor 29% gewijzigd door Setragasj op 30-03-2007 13:52 ]

<Typ een persoonlijk bericht>


  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 24-11 23:24
Volgens mij kan er zelfs meer met JavaScript als ik denk, laat staan jij denkt :)

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


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:55

crisp

Devver

Pixelated

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.
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?

Voor wat betreft het eerste is het het makkelijkst om met een singleton te werken:
JavaScript:
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:
JavaScript:
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

Pagina: 1