WIT – NTS UIT Blog

[번역] ECMA-262-3 in detail. Chapter 6. Closures.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 6. Closures. by Dmitry Soshnikov     소개(Introduction)   이번에는 JavaScript의 아주 중요한 개념인 클로저(Closures)에 대해서 알아보겠다. 그 동안 여러 번 이야기했던 내용으로 새로운 것은 아니지만, 이론적인 관점에서 조금 더 깊이 있게 들여다 보고 ECMAScript가 어떻게 클로저를 다루는지 설명할 생각이다. 이번 챕터를 이해하려면 스코프 체인(Scope chain)과 변수 객체(Variable Object)의 개념을 알아야하기 때문에,  이전에 공부했던 내용을 다시 한 번 정리하고 넘어가자.     일반 이론(General theory)   바로 ECMAScript의 클로저를 논의하기 전에, 함수형 프로그래밍의 일반 이론에서 정의하고 있는 내용을 구체화 할 필요가 있다. 다들 알고…read more

0

[번역] ECMA-262-3 in detail. Chapter 5. Functions.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 5.Functions. by Dmitry Soshnikov       소개(Introduction) 이번 글에서는 ECMAscript의 객체 중에 하나인 함수(Function)를 알아보고, 함수에는 어떠한 것들이 있는지 설명한다. 함수가 콘텍스트의 변수 객체(Variables object)에 어떠한 영향을 미치며, 각 함수의 스코프 체인에는 무엇이 들어가는지도 알아볼 계획이다. 다음과 같은 질문을 자주 받는다.   첫 번째 함수,

  일반적인 방식으로 작성한 두 번째 함수.

  “두 함수는 뭐가 다르죠?” 또는 “왜 아래 함수는 괄호로 감싼 거예요?” 와 같은 질문을 받기도 한다.

  이 글은 이전 챕터와 관련있기 때문에, 아래에 나오는 내용을 제대로…read more

0

[번역] ECMA-262-3 in detail. Chapter 4. Scope chain.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 4. Scope chain.. by Dmitry Soshnikov       소개(Introduction) 변수 객체를 살펴보았던 두 번째 챕터에서 보았듯이, 실행 콘텍스트의 데이터(변수, 함수 선언 그리고 함수의 형식 매개변수)는 변수 객체의 프로퍼티로 저장된다. 그리고 콘텍스트로 진입할 때 매번 초기값을 갖는 변수 객체를 생성하며, 코드 실행 단계에서 값을 갱신한다는 사실도 배웠다. 이 챕터에서 실행 콘텍스트와 직접적으로 관련있는 내용 한 가지를 더 자세히 알아볼텐데, 이번 주제는 바로 스코프 체인(scope chain)이다.       정의(Definitions) 간략하게 요점만 살펴보면, 스코프 체인은 대게 중첩 함수와 관련이 있다. 다들 알고 있듯이, ECMAScript는 중첩…read more

0

[번역] ECMA-262-3 in detail. Chapter 3. This.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 3. This. by Dmitry Soshnikov       소개(Introduction) 이 글에서는 실행 콘텍스트와 관련있는 내용을 더 자세하게 알아볼 것이다. 이번 주제는 this 키워드다. 사례에서 보듯이, 이 주제는 상당히 어려워서 종종 다른 실행 콘텍스트의 this 값을 처리할 때 이슈를 만들곤 한다. 많은 프로그래머가 프로그래밍 언어의 this 키워드가 객체 지향 프로그래밍과 관련이 있다고 생각한다. 정확하게는 생성자를 이용해서 새롭게 만들어진 객체를 참조한다고 생각한다. ECMAScript에도 이 개념은 정의되어 있다. 그러나 앞으로 보게 될 것처럼, ECMAScript는 this의 정의를 오직 생성한 객체로 제한하지 않는다. 자, 그러면 ECMAScript에서 사용하는 this의 정확한 의미를…read more

0

[번역] ECMA-262-3 in detail. Chapter 2. Variable object.

Posted by in Research

원문 출처 : ECMA-262-3 in detail. Chapter 2. Variable object by Dmitry Soshnikov       소개(Introduction)   프로그램을 개발할 때 우리는 항상 함수와 변수를 선언하고 이것을 이용해서 성공적으로 시스템을 구축한다. 그런데 인터프리터는 어떻게, 어디에서 데이터(함수, 변수)를 찾을까? 우리가 필요한 객체를 참조할 때 무슨 일이 일어나는 걸까? 많은 ECMAScript 프로그래머들이 변수와 실행 콘텍스트가 서로 밀접하게 연관되어 있다는 사실을 알고 있다.  

  또한 현재 버전의 ECMA 스펙에서는 오직 “함수” 코드의 실행 콘텍스트만이 격리된 유효범위(scope)를 만들 수 있다는 것도 알고 있다. 이것은 C/C++의 경우와는 반대이다. 예를 들어 보면, ECMAScript의 for 루프 블럭은…read more

0