Created
March 8, 2012 03:45
-
-
Save wwalser/1998488 to your computer and use it in GitHub Desktop.
function scope closures implicit declaration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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