2012-07-31 9 views
7

Soy recién llegado en Javascript, así que cuando leo un documento de Javascript, y hay muchas estructuras complejas que no puedo seguir.Javascript: función de llamada desde otro archivo

Aquí está la breve explicación del código de Javascript que estoy leyendo: en mi caso hay dos archivos principales: Helper.js y Circle.js.

En Helper.js, hay un nombre de método: using:function(param1,param2). Y a continuación es código para 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'); 
    } 
}); 

y en test.html archivo, escribo algo de código como este:

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

Cuando corro en Chrome y ver en la consola, me encuentro con este error:

Uncaught TypeError: Object # has no method 'Alert'

Significa que aún no he importado esas clases. Por favor, dime cómo llamar a la función desde otro archivo. En mi caso es: llamar Alert()

Gracias :)

@ Edición: He añadido algunos enlaces para el código:

Helper.js

Circle.js

+0

Sugiero subir un violín por lo que vamos a ser capaces de ver toda la operación. – Novak

+0

¿Funciona el 'Helper.using'? ¿Hace lo que se supone que debe hacer (crear el espacio de nombres)? –

+0

* Helper.using ('py.Figures' * no se parece a JavaScript. –

Respuesta

7

Por qué no tomas una mirada a esta respuesta

Including javascript files inside javascript files

En resumen, puede cargar el archivo de script con AJAX o poner una etiqueta de script en el HTML para incluirlo (antes del script que usa las funciones del otro script). El enlace que publiqué es una gran respuesta y tiene múltiples ejemplos y explicaciones de ambos métodos.

+0

¡Esta es la respuesta correcta! – varagrawal

1

Sí, puedes. Solo revisa mi violín para aclararme. Para fines de demostración, guardé el código en violín en la misma ubicación. Puede extraer ese código como se muestra en dos archivos Javascript diferentes y cargarlos en un archivo 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(); 

Si comete un objeto utilizando la función constructora y tratando de acceder a la propiedad o método de ella en el segundo archivo, se le dará el acceso de las propiedades que están presentes en otro archivo.

Sólo tenga cuidado de la secuencia de incluir estos archivos en index.html

Cuestiones relacionadas