COCO World

[Javascript/자바스크립트] Day4 - this와 콜백, 전역객체, 함수, 메서드, 추상화 본문

Language/JavaScript

[Javascript/자바스크립트] Day4 - this와 콜백, 전역객체, 함수, 메서드, 추상화

코코월드주인장 2023. 1. 26. 01:27

1. 전역 객체

 

전역 범위에 항상 존재하는 객체, 모든 객체의 유일한 최상위 객체를 의미한다.

일반적으로 browser-side에서는 window, Node.js에서는 global객체를 의미한다

 

실행 컨텍스트에 컨트롤이 들어가기 이전에 생성이 되며, constructor가 없기 때문에

New 연산자를 이용해 새롭게 생성할 수 없다. 즉, 개발자가 전역 객체를 생성하는 것이 불가능

 

2. 함수와 메서드의 차이, 지난번의 했던 답과는 다른점

 

함수를 호출하는 객체가 있는 경우 메소드, 호출하는 객체가 없는 경우 함수

함수는 호출하는 객체가 없다고 알았지만, 함수도 호출하는 객체가 존재한다

전역 범위에서 함수가 선언되는 경우 전역객체인 window의 프로퍼티가 된다

다르게 말하면, 객체를 명시하지 않을 경우, 암시적으로 전역 객체의 프로퍼티로 간주된다.

 

따라서 전역 범위에서 함수를 선언 한 다음, window 객체의 메소드로 호출이 가능하다

 

3. this는 어떻게 달라지는지?

 

함수 내에서 사용되는 키워드로 함수 호출 맥락(context)를 의미

함수를 어떻게 호출했느냐에 따라 달라지는데, 함수와 객체를 연결시켜주는 실질적인 연결점의 역할

 

함수에서 this 호출 시 this에는 전역 객체가 바인딩됨

메소드에서 this 호출 시 this에는 소속된 객체가 바인딩됨

 

4. 다른 언어의 객체와 자바스크립트의 객체 차이

 

자바스크립트에서의 함수는 내장 객체인 function 생성자로 생성된 객체 이기 때문에

함수 자체가 또 하나의 객체라고 할 수 있다. 그래서 객체의 특징인 프로퍼티와 메소드를 가질 수 있다.

 

 

5. 프로그래밍 제어권

: 프로그램 처리/실행 흐름을 제어하는 것

 

6.  콜백 지옥이란?
   :콜백 함수를 익명 함수로 전달하는 과정에서 또 다시 콜백 안에 함수 호출이 반복되어 코드의 들여쓰기 수준이 

   감당하기 힘들 정도로 깊어지는 현상
   주로 이벤트 처리나 서버 통신과 같은 비동기 작업을 제어하기 위해서 사용되는데 이러한 현상은 가독성이 떨어지고, 

   코드의 재사용성이 어려워진다.

 

7. 추상화란?
   우리가 객체를 만드는 과정은 현실 또는 가상의 존재를 프로그램 내에서 사용할 용도에 맞게 적절하게 설계하는 과정인데
   추상화는 설계하는 복잡한 과성 속에서 필요한 관점만을 추출하는 행위를 말한다.