• [Javascript] 프로토타입과 프로토타입 체인

    프로토타입 자바스크립트는 프로토타입 기반의 언어이다. 프로토타입에 기반하여 객체지향 프로그래밍을 지원한다. ES6에서는 class가 추가되었지만 wrapping된 문법이 추가된 것이지 여전히 프로토타입 기반 언어이다. 프로토타입 객체 자바스크립트의 모든 객체는 자신의 부모 역할을 하는 객체와 연결되어있다. 이 부모 객체를 프로토타입 객체 또는 프로토타입이라 한다. 프로토타입 기반 프로그래밍 : 프로토타입을 이용하여 새로운 객체를 만들어내는 프로그래밍...


  • [Javascript] 실행 컨텍스트 관점에서의 클로저

    1. 클로저 이미 생명주기가 끝난 외부 함수의 변수를 참조하는 함수를 클로저라 한다. MDN 클로저는 함수와 그 함수가 선었되었을 때의 Lexical Environment의 조합이다. 실제 개발 도구창에 closure는 외부 함수들의 변수들을 담고 있다. 현재 context의 변수는 local에 위치에 있다. 개발 도구창에서의 클로저는 생명주기가 끝난 외부 함수의 Lexical Environment이다. 클로저로 참조된 외부 변수를...


  • [Javascript] Execution Context와 Lexical Environment

    1. 실행 컨텍스트 자바스크립트의 핵심 개념으로 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이라 정의된다. 쉽게 풀어쓰면 실행 가능한 코드를 실행하기 위해 필요한 환경이다. 실행 가능한 코드? 전역 코드 : 전역 영역에 존재하는 코드 Eval 코드 : eval 함수로 실행되는 코드 함수 코드 : 함수 내에 존재하는 코드 코드를 실행하기 위해...


  • [Javascript] 분류에 따른 자바스크립트의 Scope 정리

    Scope 스코프란 유효범위를 뜻한다. (변수가 유효한 범위) 스코프는 참조 대상 식별자를 찾기 위한 규칙이고, 자바스크립트는 이 규칙을 따른다. 대부분의 프로그래밍 언어에서는 블록 레벨 스코프를 따른다. 그러나, 자바스크립트에서는 함수 레벨 스코프를 따른다. ES6의 let, const를 사용하면 블록 레벨 스코프를 사용할 수 있다. 1. 전역 스코프와 지역 스코프 전역 스코프 스코프는 계층적이며...


  • [Javascript] this와 바인딩

    This this란 keyword는 c++에서의 this와 다르다. 일반적인 프로그래밍 언어에서의 this는 self(자기자신)을 가리키는 참조변수다. javascript에서 this는 함수호출 방식에 따라 this가 결정된다. javascript에서 함수가 호출될 때, 기존 매개변수로 전달되는 인자 값에 대해서 arguments 객체와 this 인자가 함수 내부로 암묵적으로 전달된다. 함수 호출 방식과 this 자바스크립트는 함수 호출시 어떻게 호출 되는가에 따라서 동적으로...