Make A javascript variable only avaliable to functions on the same .js file

global-variables, javascript, local-variables, variables

Solution

module pattern :

var myModule = (function(exports){

    var x = "foo";

    exports.myFunction = function(){
        alert(x);
    };

})(typeof exports!="undefined" && exports instanceof Object ? exports : window );

`myFunction` will be available in the `window` scope in the browser.

EDIT

i quote the author : "I am also calling these functions from a seperate HTML page."

so the author needs a global access to the functions he defines.

var myModule is not needed though , nor export , it is just for AMD compatibility :

(function(exports){

    var x = "foo";

    exports.myFunction = function(){
        alert(x);
    };

})(window);

now x for myFunction only exists in the closure , but myFunction can still access x in the global scope. any x definition in the global scope or whatever scope will not affect `x = "foo"`

Problem

I somewhat new to Javascript and I'm stuck on this one item. Can someone please show me how to make a javascript variable only usable on the .js file that it is on. EXAMPLE: Say I have two .js files, PG1 & PG2. PG1 contains var channel = Channel01; PG2 contains a variable with the same name, but a different entered Variable (the part after the equals sign) (var channel = Channel02) I don't want function1 on PG1 to use the variable on PG2 or for function2 on PG2 to use the variable on PG1. I am also calling these functions from a seperate HTML page. Problem: All of my functions end up using only one variable no matter what page they are on. (ex. function1 & function2 both use var channel = channel01) Question: How can I limit functions on page1 to use only the variables on that .js page Thanks!

Original source