본문 바로가기

Javascript

(3)
This This는 함수 내에서 함수 호출 맥락을 의미한다. 즉 함수를 어떻게 호출하느냐에 따라서 this가 가리키는 대상이 달라질 수 있다. 함수와 객체의 관계가 느슨한 자바스크립트에서 this는 이 둘을 연결시켜주는 실질적인 연결점의 역할을 하며 아주 중요한 역할을 한다. this를 사용할 때에는 scope관계도 잘 따져야 하는데 이건 나중에 더 공부하여 올릴 예정이다. function a() { console.log(this); }; a(); // Window {} 위와 같이 기본 적으로 this는 window를 가리킨다. 다른 예시로 window를 가리키지 않는 상황을 살펴보자. var obj = { a: function() { console.log(this); }, }; obj.a(); // obj 위와..
Closure란?? 클로저란 내부함수가 외부함수의 맥락에 접근할 수 있는 것을 말한다. 말로 설명하기보단 예시를 살펴보자. function getClosure() { var text = 'variable 1'; return function() { return text; }; } var closure = getClosure(); console.log(closure()); // 'variable 1' 위에서 정의한 getClosure()는 함수를 반환하고, 반환된 함수는 getClosure() 내부에서 선언된 변수를 참조하고 있다. 또한 이렇게 참조된 변수는 함수 실행이 끝났다고 해서 사라지지 않았고, 여전히 제대로 된 값을 반환하고 있는 걸 알 수 있다. 이와 같이 내부 함수가 외부함수에서 선언된 변수에 접근하여 사용할 수 ..
Javascript(Prototype) 지금까지 First-Project나 Final-Project, 아니면 개인적으로 작업을 할 때에 항상 Prototype에서 한번씩 무조건 막힌 적이 많다. 그래서 이번 기회에 Prototype을 제대로 공부해보려고 한다. 우선, 자바스크립트는 프로토타입 기반 객체 지향 언어라고 표현하는데 여기서 말하는 프로토타입이란 대체 무엇일까???? 첫번째로 자바스크립트는 클래스라는 개념을 가지고 있지 않다. 그래서 기존의 객체를 복사해서 새로운 객체를 생성하는 방식을 사용해야 한다. 그렇기 때문에 자바스크립트를 프로토타입 기반의 언어라고 표현하는 것이다. 이러한 방법은 객체 원형인 프로토타입을 이용하여 새로운 객체를 만들어내고 이렇게 생성된 객체는 다른 객체의 원형이 될 수 있다. 그렇다면 계속해서 나오고 있는 프..