스코프/ 클로져 (스터디노트)

devbit4 [front-end developer]·2022년 8월 24일
0

스코프

블록/함수 외부에서 블록/함수 내부의 변수를 참조할수X

코드블럭

{}, if(){}, for(){}, function(){}

클로져

내부 함수에서 외부 함수의 스코프에 접근할 수 있는 것 !(렉시컬 환경이 저장되어 있기 때문에)

클로져를 왜 사용?

캡슐화를 위해서 (class private 필드와 같은 역할)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/Private_class_fields

const counter = (function () {
  let privateCounter = 0;
  function changeBy(val) {
    privateCounter += val;
  }

  return {
    increment() {
      changeBy(1);
    },
  };
})();

counter.increment();

변수 privateCounter와 함수 changeBy를 숨기고 싶을 때

class Counter{
	#counter=0;
    increase(){
    	this.#counter++;
        }
}

const couter = new Counter();
couter.increase();

출처: 드림코딩

profile
제대로 꾸준하게 / 블로그 이전 => https://dailybit.co.kr

0개의 댓글