2011-12-02 10 views
12

Jak mogę wywołać zmienne przechowywane w jednym pliku javascript z innego?Wywołuje zmienne z jednego pliku javascript na inny

var.js

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

następnie chcę użyć VAR.myvalue tutaj

sample.js

alert(VAR.myvalue); 
+1

... Czy * * spróbuj tego? –

+0

tak, ale nie działało. –

+0

Czy dołączasz plik var.js przed plikiem sample.js? A może umieścić "alert" gdzieś na pewno zostanie wywołany? – Kevin

Odpowiedz

11

Po pierwsze, zamiast

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

zdecydować

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

Ale tak długo, jak var.js odwołuje pierwszy, przed sample.js, co masz powinny działać prawidłowo.

var.js uzna, i zainicjować Var, który zostanie odczytany ze skryptu zadeklarowanej w sample.js

+0

Tak, wypróbowałem to kilka razy, ale nadal nie działało. –

+0

@RobinCarloCatacutan - powinno działać. Proszę napisać więcej kodu –

+0

Stworzyłem próbkę na razie, tak, dziękuje. Ale w moim przypadku, ponieważ stosuję to na widgecie, a tak się nie stało. Może jest problem z moim kodem. :) ale dzięki. –

2

Obejmują zarówno plik JavaScript w jednym pliku HTML, umieść sample.js po var.js tak że VAR.myvalue jest ważny:

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

Spróbuj oddzielić swój zakres za pomocą module pattern. To wyeliminuje bóle głowy w przyszłości.

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; 
    } 
    }; 
}()); 

Następnie można użyć metody i właściwości tego obiektu z dowolnego innego.

sample.js

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

Hej, to działa na moim widżecie. Czy możesz uczynić to prostszym, ponieważ chcę tylko przechowywać moje wartości w innym javascript i po prostu wywołać je. Właśnie to, co powiedziałem powyżej. Dzięki za zaliczkę :) –

+0

LOL, chodziło o to, aby "nauczyć się czegoś" o Javascript OOP. Odpowiedź Adama Rackisa jest taka sama bez metod, tylko właściwości obiektu, ale zasadniczo działa w ten sam sposób. –

+0

@Pastor Bones - tak naprawdę nie odpowiedziałeś na pytanie: kluczowym punktem, o którym nie wspomniałeś, jest to, że "var.js" musi być dołączony _before_ "sample.js". (Zgadzam się również, że wzorzec modułu może być użyteczny, ale tylko wtedy, gdy faktycznie potrzebujesz metod. Jeśli potrzebujesz tylko kilku właściwości danych, prosta droga do literowania jest drogą do zrobienia.) – nnnnnn

Powiązane problemy