14

How can I call the variables that I stored in one javascript file from another?

var.js

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

then I want to use VAR.myvalue here

sample.js

alert(VAR.myvalue);
2
  • Did you include var.js before sample.js? And maybe put the alert somewhere it's sure to get called? Commented Dec 2, 2011 at 3:42
  • Yes, I did. It seems there's problem with new Object on widget, because I've tried this sample on a simple html and it works. Commented Dec 2, 2011 at 4:13

3 Answers 3

12

First, instead of

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

Opt for

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

But so long as var.js is referenced first, before sample.js, what you have should work fine.

var.js will declare, and initialize VAR, which will be read from the script declared in sample.js

Sign up to request clarification or add additional context in comments.

1 Comment

I created a sample just for now, yeah it works thanks. But in my case because I'm applying this on a widget and it didn't. Maybe there's problem with my code. :) but, thanks.
2

Include both JavaScript file in one HTML file, place sample.js after var.js so that VAR.myvalue is valid:

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

Comments

2

Try separating your scope using a module pattern. This will eliminate headaches in the future.

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

Then you can use that object's methods and properties from anywhere else.

sample.js

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

6 Comments

Hey, this is one works on my widget. Can you make this more simple because I just want to store my values to other javascript and just call it. Just what I've stated above. Thanks for advance :)
LOL, the point was to 'learn you something' about Javascript OOP. Adam Rackis answer above is the same without the methods, only object properties but essentially works the same way.
@Pastor Bones - you didn't actually answer the question: the key point that you didn't mention is that "var.js" must be included before "sample.js". (Also, I agree that the module pattern can be useful, but only if you actually need methods. If you just need a few data properties a simple object literal is the way to go.)
@Pastor, yeah but what I've stated above it didn't work on my widget. I just want to ask if there's better method in doing that, that will save more space. Because there's a lot of values I want to store.
the return statement can return functions or properties and both are accessed in the same way.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.