22.02.22(화) 빌트인객체

luckygamza·2022년 2월 22일
0

TIL

목록 보기
6/21

객체의 분류

  • 표준 빌트인 객체
    ECMAScript 사양에 정의된 객체를 말한다.
    자바스크립트 실행환경(브라우저 또는 node.js)과 관계없이 언제나 사용가능.
    표준 빌트인 객체는 전역 객체의 프로퍼티로서 제공된다. 따라서 별도의 선언 없이 전역변수처럼 언제나 참조할 수 있다.
  • 호스트 객체
    ECMAScript 사양에는 정의되어 있지 않지만, 자바스크립트 실행환경(브라우저 또는 node.js)에서 추가로 제공하는 객체.
  • 사용자 정의 객체

빌트인 전역 함수

빌트인 전역함수는 전역 객체의 메소드이다. 애플리케이션 전역에서 호출가능하다.
ex) parseInt,encodeURI

래퍼 객체

문자열,숫자, 불리언 이 3가지 원시값에 대해 객체처럼 접근하면 생성되는 임시 객체를 래퍼 객체라 한다.

This의 필요성

let Circle = {
    radius : 1,
    getDiameter : function() {
        return 2 * Circle.radius;
    }
}

객체 리터럴에 의한 객체 생성 시 해당 객체의 메소드는
객체 리터럴이 평가되고 변수에 할당된 이후에 호출된다.
따라서 메소드 내부에서 자신이 속한 객체를 가리키는 식별자를 재귀적으로 참조할 수 있다.

function Circle(radius) {
    ????.radius = radius;
}

생성자 함수에 의한 객체 생성 시 해당 객체의 메소드는
생성자 함수가 정의된 이후에 호출된다.
그러나 생성자 함수를 정의하는 시점에는 아직 인스턴스를 생성하기 전이므로 생성자 함수가 생성할 인스턴스를 가리키는 식별자를 알수 없다. 따라서 자신이 속한 객체, 또는 자신이 생성할 인스턴스를 가리키는 특수한 식별자가 필요하다. 이를 위해 자바스크립트는 this라는 특수한 식별자를 제공한다.

함수 호출 방식에 따른 This 바인딩

  1. 일반 함수(중첩함수,콜백함수 포함)로 호출된 모든 함수의 내부에서 this에는 기본적으로 전역 객체가 바인딩된다. 다만 strict mode라면, undefined가 바인딩된다. 따라서 중첩 함수, 콜백 함수의 this가 외부 메소드의 this와 다를 수 있다는 점을 주의하자.
  2. 메소드 내부의 this에는 메소드를 소유한 객체가 아닌, 메소드를 호출한 객체가 바인딩 된다.
  3. 생성자 함수 내부의 this에는 생성자 함수가 미래에 생성할 인스턴스가 바인딩된다.

0개의 댓글

관련 채용 정보