본문 바로가기

All67

[21.01.19] YDKJSY - this Or That? / this All Makes Sense Now! ⚠️ 여기서 설명하는 this는 JS 안에서의 개념이다. 다른 언어에서도 this를 사용하지만, 똑같은 개념으로 보는 일이 없도록 하자. Confusions this는 그 이름 때문에 개발자들에게 종종 혼동을 가져다 준다. 이 개념에 대해 크게 착각하는 두 가지가 있는데, 그것은 다음과 같다. this 는 선언된 함수 자신을 가리킨다. this 는 호출한 함수의 스코프를 가리킨다. 이러한 착각은 주로 this를 렉시컬 스코프의 개념과 연관지어 추론할 때 발생하고는 한다. What's this? 바인딩 = binding = 묶는, 결속하는 행위 this는 동적으로 무언가를 바인딩한다. 즉, 함수 인용 조건에 따른 맥락 의존적인 성격을 가지고 있는 개념으로 보는 게 더 정확하다. 그렇기 때문에 this는 함.. 2024. 1. 7.
[21.01.16] YDKJSY - Appendix A: Exploring Further Implied Scopes 스코프는 가끔 관찰되지 않는 영역에서 생성된다. 이 스코프는 프로그래밍을 할 때 상식 선에서 코드를 작성한다면, 프로그램에 거의 영향을 끼칠 일은 없겠지만 그럼에도 불구하고 알 만한 가치가 있는 지식이 되어줄 것이다. Parameter scope Function name scope Parameter Scope 함수의 매개 변수는 기본적으로 함수 내의 지역 변수와 동일한 스코프를 공유할 수 있다 볼 수 있지만, 매번 그렇지는 않다. 단순한 매개 변수의 선언인 경우 이 표현이 허용될 수 있다. 하지만 default parameter(a = b), rest parameter(...args), destructured parmeter({a, b}) 처럼 조금 복잡하게 인용된 매개 변수로.. 2024. 1. 7.
[21.01.13] YDKJSY - The Module Pattern Encapsulation and Least Exposure 캡슐화는 종종 OOP의 원리로 인용된다. 하지만 이 개념은 더 포괄적인 영역을 맡고 있고, 최근 컴포넌트 기반 아키텍처의 어플리케이션을 설계하는 프론트 엔드 개발 영역에 이끄는 트렌드로 작용하고 있다. 캡슐화를 이용하는 가장 큰 목적은 데이터와 기능의 가시성을 통제하는 데에 있다. 이는 이전 챕터에서 다루었던 '노출의 최소화'의 관점과 같은 맥락을 유지하고 있고 JS에서는 렉시컬 스코프의 기술을 통해 이 관점을 지키고 있다. 이러한 노력의 자연스러운 결과는 결국 더 나은 코드의 체계화를 지향한다는 것이다. 어떤 경계를 기준으로 무엇이 어디 있는지 쉽게 알 수 있다는 것은 소프트웨어의 유지보수를 더 용이하게 하고 데이터와 기능의 외부 스코프로 무방.. 2024. 1. 7.
[21.01.11] YDKJSY - Using Closures See the Closure 클로저는 함수의 동작 혹은 함수 그 자체다. 객체나 클래스는 클로저를 가질 수 없다. 클로저는 하나의 함수로써 그것의 초기 선언 지점으로부터 형성된 스코프 체인의 다른 분기에서 사용된다. 만약 선언된 곳과 같은 스코프에서 실행하는 함수라면, 그것은 클로저가 아니다. function count() { var counter = 0; return function() { return counter++; } } var counter1 = count(); counter1(); //0 counter1(); //1 counter1(); //2 counter1(); //3 함수 안에서 내부 함수를 반환하는 어떤 로직을 작성하고 그것을 특정한 변수에 할당하는 식으로 호출을 마치고 나면, 흔히 .. 2024. 1. 7.