Guest User

Untitled

a guest
Nov 18th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. // Scope example of a inner function
  2.  
  3. var global_variable = 5;
  4.  
  5. function simplefunc() {
  6. var local_variable = 6;
  7.  
  8. function innerfunc() {
  9. console.log(global_variable);
  10. console.log(local_variable);
  11. }
  12.  
  13. return innerfunc;
  14. }
  15.  
  16. var f = simplefunc(); // innerfunc가 리턴됨
  17.  
  18. f(); // prints '5', '6'
  19.  
  20. // Q: '5' 는 알겠는데 '6'은? 어디서 튀어나왔지?
  21. // var local_variable은 지역변수에 불과한 것 아니었나?
  22. // A: simplefunc내에서 정의된 var local_variable은 innerfunc의 입장에서 보면
  23. // 전역 변수처럼 자신의 scope에서 접근이 가능하도록 innerfunc가
  24. // (자신의 'closure'에) 이 변수의 레퍼런스를 복사해간다.
  25. // 이 때문에 local_variable 변수의 lifespan은 계속 이어지게 된다.
Add Comment
Please, Sign In to add comment