Skip to content

Instantly share code, notes, and snippets.

@wwalser
Created March 8, 2012 03:45
Show Gist options
  • Save wwalser/1998488 to your computer and use it in GitHub Desktop.
Save wwalser/1998488 to your computer and use it in GitHub Desktop.
function scope closures implicit declaration
//these three are the same
function foo() {
var wes = 'wes';
var peter = 'peter';
}
function foo() {
var wes, peter;
wes = 'wes';
peter = 'peter';
}
function foo(){
var wes = 'wes',
peter = 'peter';
}
//this is not
function foo(){
wes = 'wes';
peter = 'peter';
}
//those were created in the global scope (bad thing)
//closed variable manipulated in a function
function outerClosure(){
var wes, peter;
function innerFunction(){
wes = 'wes';
peter = 'peter';
}
innerFunction()
return [wes, peter];
}
outerClosure(); //returns ['wes', 'peter']
function outerClosure(){
var wes, peter;
function innerFunction(){
var wes = 'wes';
var peter = 'peter';
}
innerFunction()
return [wes, peter];
}
outerClosure(); //returns [undefined, undefined]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment