2011-12-02 14 views
12

¿Cómo puedo llamar a las variables que almacené en un archivo javascript desde otro?Variables de llamada de un archivo javascript a otro

var.js

var VAR = new Object; 
VAR.myvalue = "Yeah!"; 

entonces yo quiero usar VAR.myvalue aquí

sample.js

alert(VAR.myvalue); 
+1

... hicieron que intenta * * esto? –

+0

sí, pero no funcionó. –

+0

¿Incluyó var.js antes de sample.js? Y tal vez poner el 'alerta' en algún lugar seguro que se llamará? – Kevin

Respuesta

11

En primer lugar, en lugar de

var VAR = new Object; 
VAR.myvalue = "Yeah!"; 

Opto por

var VAR = { 
    myvalue: "Yeah!" 
}; 

Pero mientras var.js está referenciado primera, antes sample.js, lo que tiene debería funcionar bien.

var.js declararán, e inicializar VAR, que se leerá desde el guión declarada en sample.js

+0

Sí, lo intenté un par de veces, pero aún así no funcionó. –

+0

@RobinCarloCatacutan - debería funcionar. Por favor publique más código –

+0

Creé una muestra por el momento, sí funciona gracias. Pero en mi caso, porque estoy aplicando esto en un widget y no fue así. Tal vez haya un problema con mi código. :) pero gracias. –

2

incluir tanto un archivo de JavaScript en un archivo HTML, coloque sample.js después var.js modo que VAR.myvalue es válida:

<script type="text/javascript" src="var.js"></script> 
<script type="text/javascript" src="sample.js"></script> 
2

Intente separar su alcance con un module pattern. Esto eliminará dolores de cabeza en el futuro.

var.js

var someVar = (function() { 
    var total = 10; // Local scope, protected from global namespace 

    return { 
    add: function(num){ 
     total += num; 
    } 
    , sub: function(num){ 
     total -= num; 
    } 
    , total: function(){ 
     return total; 
    } 
    }; 
}()); 

continuación, puede utilizar los métodos y propiedades de ese objeto desde cualquier otro lugar.

sample.js

someVar.add(5); 
someVar.sub(6); 
alert(someVar.total()); 
+0

Oye, este es uno que funciona en mi widget. ¿Puede hacer esto más simple porque solo quiero almacenar mis valores en otro javascript y simplemente llamarlo? Justo lo que dije antes. Gracias por avanzar :) –

+0

LOL, el punto era 'aprender algo' sobre Javascript OOP. La respuesta anterior de Adam Rackis es la misma sin los métodos, solo con las propiedades del objeto, pero esencialmente funciona de la misma manera. –

+0

@Pastor Bones: en realidad no respondió la pregunta: el punto clave que no mencionó es que "var.js" debe incluirse _antes de "sample.js". (Además, estoy de acuerdo en que el patrón del módulo puede ser útil, pero solo si realmente necesita métodos. Si solo necesita unas pocas propiedades de datos, un simple literal de objeto es el camino a seguir.) – nnnnnn

Cuestiones relacionadas