프로토타입 (prototype) 현생에 치이고, 5월의 연휴를 즐기다보니 너무 오랜만에 공부를 하게 되었습니다 ^^; 이번주부터는 열심히 포스팅할 예정입니다! 오늘은 프로토타입에 대해 정리하려고 합니다. JavaScript 는 프로토타입 (prototype) 기반 언어입니다. 클래스 기반 언어에서는 '상속' 을 사용하지만 프로토타입 기반 언어에서는 어떤 객체를 원형으로 삼고 이를 복제(참조)함으로써 상속과 비슷한 효과를 얻습니다. 프로토타입의 개념을 이해해봅시다. 아래 그림은 프로토타입의 도식입니다. 어떤 생성자 함수 (Contructor)를 new 연산자와 함께 호출하면 Contructor 에 정의된 내용을 바탕으로 새로운 인스턴스 (instance) 가 생성됩니다. instance 에는 __proto..
전체 글 검색 결과
클로저 클로저(Closure) 는 여러 함수형 프로그래밍 언어에서 등장하는 보편적인 특성이다. 클로저란, 어떤 함수에서 선언한 변수를 참조하는 내부함수에서만 발생하는 현상이다. 어려운 내용인 듯하니, 예제를 통해 살펴보자. var outer = function() { var a = 1; var inner = function() { return ++a; }; return inner(); }; var outer2 = outer(); console.log(outer2); // 2 outer 라는 함수에 지역변수 a가 선언되어있는데, outer 함수의 실행 컨텍스트가 종료된 시점에도 a 변수는 사라지지 않고 1이 증가된 모습을 확인할 수 있다. inner 함수 실행시점에 outer 함수는 실행이 종료된 상태임에..
회사 프로젝트에서 다중 데이터를 조회하여 필요한 컬럼들만 쏙쏙 뽑아서 INSERT 해야하는 경우가 빈번히 발생합니다. 지난 프로젝트에서도 사용했었는데 이번 기회에 잊어버리지 않도록 정리할 예정입니다 :-) 구문형식은 아래와 같습니다. // 일반적인 INSERT 구문 INSERT INTO [테이블명] (컬럼명1, 컬럼명2, ....) VALUES (값1, 값2, ...); //여러 행 INSERT 구문 INSERT INTO [테이블명] (컬럼명1, 컬럼명2, ....) SELECT ... SELECT 구문에는 SELECT 하는 테이블에 존재하지 않는 컬럼이더라도 #{값}#을 이용하여 INSERT 가 가능합니다. INSERT INTO TABLE_A (A_T1, A_T2, A_T3, A_T4, A_T5) SE..
콜백 함수 (Callback Function) 콜백 함수란, 영어 뜻 그대로 callback은 call (부르다, 호출하다) 과 back (뒤돌아오다, 되돌다) 의 합성어로 되돌아 호출해달라는 명령입니다. 쉽게 설명하면 함수 A 를 호출하면서 '특정 조건일 때 함수 B 를 실행하여 나에게 알려줘!'라는 뜻이죠 어려운 용어로 설명하면, 콜백함수는 다른 코드 (함수 또는 메서드) 에게 인자로 넘겨줌으로써 그 제어권도 함께 위임하는 함수란 것입니다. 콜백 함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백 함수를 적절한 시점에 실행할 것입니다. 줄글로 설명하면, 어려우니 예제를 통해 구체적으로 살펴보겠습니다. function fn_sum(a, b, callback) { var sum = a + b; c..
this 파헤치기 this 는 객체지향언어에서 클래스로 생성한 인스턴스의 의미한다. 하지만 JavaScript 에서의 this 는 어디서든 활용이 가능하다. JavaScript 에서 this 는 기본적으로 실행 컨텍스트가 생성될 때 함께 결정된다. 실행 컨텍스트는 함수를 호출할 때 생성되므로, this 는 함수를 호출할 때 결정된다고 이해할 수 있다. 전역공간에서의 this 는 전역 객체를 가르킨다. 전역 컨텍스트를 생성하는 주체가 바로 전역 객체이기 때문이다. 참고로 브라우저 환경에서 전역객체는 window이고, Node.js 환경에서는 global이다. var a = 1; console.log(a); // 1 console.log(window.a); // 1 console.log(this.a); //..
실행 컨텍스트 (Execution Context) 실행 컨텍스트란? 실행할 코드에 제공할 환경 정보들을 모아놓은 객체로서, JavaScript 의 동적언어의 성격을 가장 잘 나타내는 개념이다. JavaScript 는 어떤 실행 컨텍스트가 활성화되는 시점에 선언된 변수를 위로 끌어올리고(호이스팅의 개념), 외부 환경 정보를 구성하고, this 값을 설정하는 등의 동작을 수행한다. 실행 컨텍스트라는 개념을 이해하는 것은 개발자의 성장으로서 가장 중요한 핵심이니 꼭 이해하고 넘어가도록 하자. 실행 컨텍스트를 이해하기 전 스택(stack) 과 큐(queue) 의 개념부터 살펴보자. 스택(stack) 은 출입구가 하나뿐인 깊은 우물같은 데이터 구조이다. 비어있는 스택에 순서대로 데이터 a, b, c, d 를 저장..
최근댓글