WJ
프로토타입 프로토타입은 콘솔창을 통해 디버깅을 하다보면 보게 되실수 있을겁니다. 자바스크립트의 객체는 부모 역할을 담당하는 객체와 연결되어있습니다. 상속 개념과 같이 부모 객체의 프로퍼티 또는 메소드를 상속받아 사용할 수 있습니다. 이런 부모 객체를 프로토타입 객체 또는 줄여서 프로토타입이라고 부릅니다. ECMAScript spec 에서 자바스크립트의 객체는 자신의 프로토타입(부모로부터 물려받은)을 가리키는 [[Prototype]]이라는 숨겨진 프로퍼티를 가진다라고 되어있습니다. 크롬, 파이어폭스에서는 [[Prototype]]을 _proto_로 나타냅니다. function A() {};var A = new A();console.log(A); 위 코드를 실행하고 콘솔창을 확인하면 이러한 내용을 확인 하실수..
클로져(Closure) MDN에서는 클로져를 내부함수가 참조하는 외부함수의 지역변수가 외부함수에 의해 내부함수가 반환된 이후에도 life-cycle이 유지되는 것을 의미한다. 라고 정의했습니다. 여기서 클로져는 스코프와 밀접한 관계를 가지고 있습니다. 스코프란 함수의 유효범위라는 것을 알고 있으실 겁니다. 클로져는 이러한 함수 내부에서 생성된 데이터와 스코프로 인해 발생하는 특수한 현상 혹은 상태를 말합니다. 클로져에 대해 알아보며 특성과 장점들을 알아보겠습니다.접근 권한 제어지역변수 보호데이터 보존 및 활용 function a(){var x = 1;function b(){console.log(x);} // 변수 x 접근 가능b();console.log(x); } // 변수 x 접근 가능 a(); con..
다른 언어들에서 this는 클래스로부터 생성되는 인스턴스(어떤 집합에 속하는 개별적인 요소) 중 현재 객체를 의미한다고 합니다. 하지만 자바스크립트에서 this는 함수의 현재 실행 문맥(Execution Context)을 나타내며, 자바스크립트에는 4가지의 함수 실행 타입이 있기 때문에 각각의 실행 타입에 따라 this가 변하게 됩니다. 함수 실행 : alert('Hello World!');메소스 실행 : console.log('Hello World!');생성자 실행 : new RegExp('\d');간접 실행 : alert.call(undefined, 'Hello World!'); 각각의 타입은 서로 다른 각각의 문맥을 가지기 때문에 this 키워드를 바르게 이해하기 위해서는 실행 타입이 문맥에 어떤 ..