2012-07-31 20 views
7

Sono appena arrivato in Javascript, così quando leggo un documento Javascript e ci sono molte strutture complesse che non posso seguire.Javascript: chiama la funzione da un altro file

Ecco la breve spiegazione del codice Javascript che sto leggendo: nel mio caso ci sono due file principali: Helper.js e Circle.js.

In Helper.js, c'è un nome di metodo: using:function(param1,param2). E sotto è il codice per Circle.js:

Helper.using('py.Figures', function (ns) { 

    ns.Circle = function (params) { 
     // some additional methods and code here 
    } 

    ns.Alert = function(){ // for the test purpose 
      alert('hello'); 
    } 
}); 

E nel file di test.html, scrivo qualche codice come questo:

<script src="Helper.js"></script> 
<script src="circle.js"></script> 
<script> 
    test = function(){ 
     py.Figures.Alert(); // calling for testing purpose 
    } 
</script> 
<body onload="test();"></body> 

Quando eseguo su Chrome e visualizzare in console, mi capita di incontrare questo errore:

Uncaught TypeError: Object # has no method 'Alert'

Significa che non ho ancora importato quelle classi. Per favore dimmi come chiamare la funzione da un altro file. Nel mio caso è: chiamare Alert()

Thanks :)

@ Edit: ho aggiunto alcuni link per il codice:

Helper.js

Circle.js

+0

Suggerisco di caricamento di un violino in modo saremo in grado di vedere l'intera operazione. – Novak

+0

funziona 'Helper.using'? Fa ciò che dovrebbe fare (creando lo spazio dei nomi)? –

+0

* Helper.using ('py.Figures' * non sembra JavaScript per me. –

risposta

7

Perché non si prende un occhiata a questa risposta

Including javascript files inside javascript files

In breve è possibile caricare il file di script con AJAX o inserire un tag di script nell'HTML per includerlo (prima dello script che utilizza le funzioni dell'altro script). Il link che ho postato è un'ottima risposta e ha più esempi e spiegazioni di entrambi i metodi.

+0

Questa è la risposta corretta! – varagrawal

1

Sì, è possibile. Controlla il mio violino per chiarimenti. Per scopi dimostrativi ho tenuto il codice in fiddle nella stessa posizione. Puoi estrarre quel codice come mostrato in due diversi file Javascript e caricarli in un file html.

https://jsfiddle.net/mvora/mrLmkxmo/

/******** PUT THIS CODE IN ONE JS FILE *******/ 

    var secondFileFuntion = function(){ 
     this.name = 'XYZ'; 
    } 

    secondFileFuntion.prototype.getSurname = function(){ 
    return 'ABC'; 
    } 


    var secondFileObject = new secondFileFuntion(); 

    /******** Till Here *******/ 

    /******** PUT THIS CODE IN SECOND JS FILE *******/ 

    function firstFileFunction(){ 
     var name = secondFileObject.name; 
     var surname = secondFileObject.getSurname() 
     alert(name); 
     alert(surname); 
    } 

    firstFileFunction(); 

Se si commette un oggetto utilizzando la funzione di costruzione e cercando l'accesso alla proprietà o il metodo da esso in secondo file, che vi darà l'accesso di proprietà che sono presenti in un altro file.

Basta prendersi cura di sequenza di includere questi file in index.html

Problemi correlati