March 18, 2001 - Modifying Globals | WebReference

March 18, 2001 - Modifying Globals

Yehuda Shiran March 18, 2001
Modifying Globals
Tips: March 2001

Yehuda Shiran, Ph.D.
Doc JavaScript

There are at least three different ways to define a function in JavaScript. They are all equivalent in the way they treat global variables. They can modify global variables from the outside context. We initialize a global variable to 5, and each function definition below adds 10 to it inside the function definition. We then print its value. Notice that each click below will increment the global variable by 10. Here is the traditional definition:

var global = 5;
function first(param) {
  global += 10;
  alert(param + " method shows global to be " + global);
}

Pass "first" to this function and see that you get the expected alert box with the global variable incrementing by 10. The second way to define a function is the anonymous way. You define a function inline, without giving it a name:

second = function(param) {
   global += 10; 
   alert(param + " method shows global to be " + global)
};

Pass "second" to this function and see that you get the expected alert box, with the global variable incrementing by 10. The third way to define a function is by constructing it with the Function function. The Function function accepts two parameters: the parameter to be passed, and the body of the function:

third = new Function(
   "param", 
   " global += 10; alert(param + ' method shows global to be ' + global)");

Pass "third" to this function and see that you get the expected alert box, showing global incrementing by 10 with each click.