자바스크립트/코어 자바스크립트6 코어자바스크립트 6장<프로토타입> 1. 프로토타입의 개념 이해 클래스와 상속의 관계를 JS에선 프로토타입으로 대체하고 있다. 1-1) constructor, prototype, instance var instance = new Constructor(); 위 코드를 저 도식에 비유해보자 어떤 생성자 함수(Constructor)를 new 연산자와 함께 호출하면 Constructor에서 정의된 내용을 바탕으로 새로운 인스턴스가 생성된다. 이때 instance에는 __proto__라는 프로퍼티가 자동으로 부여되는데 이 프로퍼티는 Constructor의 prototype이라는 프로퍼티를 참조한다. prototype은 객체다. 당연히 __proto__도 객체다. prototype 내부에는 인스턴스가 사용할 메서드를 저장한다. 그러면 인스턴스에서도 .. 2022. 8. 18. 코어자바스크립트 5장<클로저> 1. 클로저의 의미 및 원리 이해 위 코드에서 outer 함수 내부에 a라는 변수와 inner함수가 들어가 있고, outer 함수는 inner함수의 결과값을 반환한다. 따라서 outer 함수의 실행컨텍스트가 종료되는 시점에선 변수 a를 참조하는 참조카운트가 0이 되고, 변수 a와 inner함수는 가비지 컬렉터의 수집 대상이 될 것이다.(참조 카운트가 0이므로) 이제 위 코드르 보자, 이번엔 inner 함수의 결과값이 아닌 inner 함수 자체를 반환하고 있다. 따라서 outer 함수의 실행 컨텍스트가 종료될때(8번줄) outer2 변수는 outer의 실행 결과인 inner 함수를 참조한다. 이후 outer2를 호출하면 앞서 반환된 inner 함수가 실행되게 된다. 그런데 outer 함수는 이미 실행이 종.. 2022. 8. 17. 코어자바스크립트 4장<콜백 함수> 1. 콜백 함수란? 1-1)콜백 함수란? 콜백 함수는 다른 코드의 인자로 넘겨주는 함수이다. 콜백 함수를 넘겨받은 코드는 이 콜백 함수를 필요에 따라 적절한 시점에 시행할 것이다. 콜백 함수는 다른 코드(함수 OR 메서드)에게 인자로 넘겨줌으로서 그 제어권도 함께 위임한 함수이다. 콜백 함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백 함수를 적절한 시점에 시행할 것이다. ※일상 생활에서의 예시 A와 B는 다음 날 아침 8시에 만나기로 하고 잠을 잔다. 늦어도 6시에는 일어나야 약속에 늦지 않는다 A는 매우 불안한 마음에 수시로 깨어 시계를 확인한다. 계속 잠을 설치다 결국 5시즈음 포기하고 일어난다 B는 알람시계를 세팅한다. 알람이 잘못될 염려는 없고 평소 알람에 잘 일어나므로 완전 꿀잠을 자.. 2022. 8. 14. 코어자바스크립트 3장<this> 1. 상황에 따라 달라지는 this 스크립트에서 this는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정된다. 실행 컨텍스트는 함수를 호출할 때 생성되므로, 바꿔 말하면 this는 함수를 호출할 때 결정된다. 1-1) 전역 공간에서의 this 전역 공간에서 this는 전역 객체를 가리킨다. 전역 객체는 JS 런타임 환경에 따라 다른 이름과 정보를 가진다(브라우저=window, Node.js=global) ※전역변수를 선언하면 자바스크립트 엔진은 이를 전역객체의 프로퍼티로도 할당한다!? 전역공간에서 변수 a에 1을 할당하니 window.a(전역객체)와 this.a 모두 1로 출력된다. 이는 '전역변수를 선언하면 자바스크립트 엔진은 이를 전역객체의 프로퍼티로 할당한다'라는 공식 때문이다. 따라서 windo.. 2022. 8. 13. 코어자바스크립트 2장<실행 컨텍스트> 1. 실행 컨텍스트란? 1-1) 실행 컨텍스트 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체 자바스크립트는 어떤 실행 컨텍스트가 활성화되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅) 외부 환경 정보를 구성하고, this 값을 설정하는 등의 동작을 수행한다. 1-2) 스택과 큐 스택 : 출입구가 하나뿐인 깊은 우물 같은 데이터 구조(LIFO) 큐 : 양쪽이 모두 열려있는 파이프(하지만 입, 출구는 하나) (FIFO) 동일한 환경에 있는 코드들을 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고, 이를 콜 스택에 쌓는다. 위 그림에서 (1)번구간이 실행될 때 (처음 자바스크립트를 실행) 전역 컨텍스트를 콜 스택에 담는다 그 뒤 계속 실행하다가 (3)에서 outer()함수를 호.. 2022. 8. 12. 이전 1 2 다음