목록2025/01/15 (2)
nhyunzi
개발을 하다보면 객체를 여러개 만들어야 하는 경우가 생긴다. (회원, 상품 등) 이럴때 쓸 수 있는 것이 생성자 함수다. 생성자 함수는 붕어빵 틀처럼 필요한 재료를 넣어주고 찍어내는 것이다. new 함수명(); 을 실행하면 빈 객체를 만들고 this에 할당한다. 함수본문을 실행하면서 this에 프로퍼티들을 추가한다. 마지막으로 this를 반환한다. 실제로 this = {} , return this는 실제 코드에서는 생략되어 있다. new를 붙여 실행하는 순간 이러한 알고리즘으로 동작한다.이렇게 객체를 만들면 일일이 객체리터럴을 쓰는 것보다 훨씬 빠르고 일관성 있게 객체를 만들 수있다. 스펙이 변경되어도 생성자 함수만 고치면 된다. 생성자 함수는 첫글자 대문자가 관례다. // 생성자 함수: 상품 ..
let, const는 ES6부터 사용한다. 이전 버전에서는 var를 사용했다. var와 let은 크게 다르지 않다. 대부분의 경우에는 둘을 바꿔 사용해도 문제되지 않는다. var로 선언한 모든 변수는 코드가 실제로 이동하진 않지만 최상위로 끌어올려진 것처럼 동작한다. (호이스팅 hoisting) 이때, 선언은 호이스팅 되지만 할당은 호이스팅 되지 않는다 . 같은상황에서 let은 에러가 발생한다. let은 호이스팅 되지않는걸까? let과 const도 호이스팅 된다. 그이유는 Temporal Dead Zone(TDZ) 때문이다. TDZ 영역에 있는 변수들은 사용할 수 없다. let과 const는 TDZ의 영향을 받는다. 따라서 할당을 하기전에는 사용할 수 없다. 이는 코드를 예측가능하게 하고 잠..