본문 바로가기
반응형

프로그래밍 개발/JS 핵심 언어 이론6

Javascript 클래스(class) 이론 클래스(class) 클래스는 계급, 집단, 집합을 뜻 하는데 자바스크립트에서는 뜻 그대로 집단으로 나뉠 수 있다. 왼쪽 그림에서 class 파트는 직접적으로 사용되는 생성된 객체 배열 [1,2,3] 등등이 아니라 이 생성 객체를 만드는 매개가 되는 생성자 범위를 class라고 부른다. 이 class 파트에서 생성자의 메소드들을 정적 메소드, 정적 프로퍼티로 구분할 수 있으며 프로토타입의 메소드는 그냥 메소드 아니면 프로토타입 메소드라고 불린다. 생성자에 인하여 생성된 직접적으로 사용하는 객체 instance는 프로토타입 메소드에 접근이 가능하다. 왜냐하면 __proto__의 매개체를 생략 가능하므로 가능하다. 하지만 생성된 객체 instance가 정적 메소드 및 프로퍼티에 바로 접근은 되지 않는다. 프로.. 2020. 12. 4.
Javascript 프로토타입(prototype) 이론 프로토타입(prototype) 객체는 프로퍼티를 가질 수 있는데 prototype이라는 프로퍼티는 그 용도가 약속되어 있는 특수한 프로퍼티다. prototype에 저장된 속성들은 생성자를 통해서 객체가 만들어질 때 그 객체에 연결된다. new을 이용해 만든 constructor 즉 생성자가 새로운 객체를 만들면 이 새로운 객체에 생성자의 프로토타입이라는 내용이 새로운 객체의 __proto__라는 것을 통해 연결되어 생성자을 참조하게 된다. 즉 생성자.prototype와 객체.__proto__는 같은 객체를 바라본다는 뜻이다. 그리고 __proto__는 생략이 가능하다. 한마디로 프로토타입으로 연결되어 생성된 객체가 생성자의 메소드들을 꺼내서 마음대로 쓸 수 있다는 것이다. 만약 Array 생성자가 새로운.. 2020. 12. 4.
Javascript 클로저(Closure) 이론 클로저(Closure) 함수와 그 함수 선언될 당시의 협동이라고 말할 수 있다. 다르게 말하면 실행 콘택스트 A와 함수B가 콤비가 되어 무언가를 한다라고 볼수 있다. 여기서 눈여겨 봐야할 것은 LexicalEnviroment의 outerEnvironmentReterenced이다. 함수B와 실행 콘텍스트 A가콤비가 되어 무언가를 한다고 했는데 이는 함수 B가 A에서 선언한 무언가로 앤해 A로 접근하려고 할 때 문제가 되는데 이때 함수 B가 A로 접근할 수 있게 도와주는 함수 B의 outerEnvironmentReterenced가 초점을 맞쳐야할 대상이다. 즉 다시 말해 함수 B의 outerEnvironmentReterenced는 컨텍스트 A의 environmentRecord를 참조하므로 "컨텍스트 A에서 .. 2020. 12. 4.
Javascript callback Function이론 callback Function call 호출하다. back은 다시 돌려주다. 라고 생각하면 이해하기 쉽다. 즉 콜백 함수는 호출해서 나한테 돌려줄 함수라고 말할 수있다. 콜백 함수는 함수를 일단 따로 전달하고 호출해서 그 결과를 따로 다시 돌려주라는 의미이다. 주고받는다는 의미이기도 하다. 즉 함수 제어권을 맡긴다는 것이다. 제어권 => 실행 시점 위 코드는 setInterval이라는 메소드의 첫 번째 인자로 콜백 함수가 들어있다. 콜백 함수가 실행 되면 변수 cb의 함수가 발동된다. 1초 주기마다 콜백 함수를 호출하는 코드라고 볼 수 있다. 이때 변수 cb로 선언한 함수를 setInterval이라는 메소드의 첫 번째 인자로 넘겨준 것인데, 즉 호출 결과를 알려달라고 제어권을 setInterval에 넘.. 2020. 12. 3.
Javascript this 이론 this this는 실행 콘텍스트가 실행될 때 한다. 그리고 실행 콘텍스가 실행될 때는 콘텍스트를 지닌 함수가 호출되는 순간이며 이때 this가 활성화된다. 즉 함수가 호출될 때 this가 결정이 난다고 말할 수 있다. 전역공간에서의 this 전역 콘텍스트를 실행하는 주체가 this라고 알고 있으면 된다. 브라우저의 window, 노드의 global 등등이 있다. 함수 호출시 this 전역공간에서 함수를 호출하였으면 당연히 호출 시킨 함수 this는 window 및 global을 가르킨다. 하지만 위의 예시처럼 아무리 e객체안에 있는 메소드 함수 안에 있는 함수 f()을 함수 메소드 안에서 함수를 호출해도 f() 함수의 this는 전역객체의 주체인 window을 선택한다. 왜냐하면 허무하지만 일종의 자바.. 2020. 12. 3.
Javascript 실행 콘텍스트 이론 실행 콘텍스트 Execution Context Context는 코드 흐름상의 배경이 되는 조건 및 환경을 뜻한다. 즉 실행 콘텍스트는 실행에 필요한 코드 흐름상의 배경이 되는 조건 및 환경이라고 말할 수 있다. 동일한 조건과 환경을 지닌 코드 뭉치(함수와 전역공간)를 실행할 때 필요한 조건과 환경정보라고 할 수 있다. 즉 함수를 실행하는데 필요한 환경정보(를 담은 객체)이다. inner 안에는 VariableEnviroment와 LexicalEnviroment가 있는데 둘다 environmentRecord와 outerEnvironmentReterence의 객체를 가지고 있다. VariableEnviroment는 순간적으로 캡쳐하고 그 뒤에 값이 바뀌는 것에 상관없이 그 순간적인 순간만의 값을 유지하는 것.. 2020. 12. 3.
반응형