22.02.18(금) 생성자함수로 객체생성과 this

luckygamza·2022년 2월 18일
0

TIL

목록 보기
4/21

생성자 함수에 의한 객체 생성, this 바인딩

    function person (a,b) {
    	this.lastName = a;
    	this.firstName = b;
    	this.getFullName = function () {
    		return this.lastName+this.firstName;
    	}
    }
    personA = new person("seyeon","ko");
    console.log(personA.getFullName());

javascript는 생성자 함수라는 함수형태를 이용해서 객체를 생성할 수 있다.

이때, 생성자 함수 내부의 this는 생성자 함수가 생성할 인스턴스를 가리킨다.

생성자 함수에 의해 객체가 생성되는 과정 (this Binding)

  1. new 연산자와 함께 생성자 함수를 호출하면 자바스크립트엔진은 빈 객체(인스턴스)를 생성한다.
  2. 빈 객체, 즉 인스턴스는 this에 바인딩 된다.
  3. this에 바인딩된 인스턴스에 생성자 함수 안에 기술되어있는 대로 프로퍼티나 메소드가 추가되고 초기화 된다.
  4. 생성자 함수 내의 모든 처리가 끝난 후 this에 바인딩 되어있던 인스턴스가 암묵적으로 반환된다.

    생성자 함수와 일반 함수의 특별한 형식적 차이는 없다.

constructor과 non-constructor의 구분

자바스크립트 엔진은 함수 객체를 생성할 때 함수 정의 방식에 따라 함수를 constructor과 non-constructor로 구분한다.

constructor: 함수 선언문,함수 표현식,클래스

non-constructor: ES6 메소드 축약표현으로 정의한 메소드, 화살표 함수

함수를 new 키워드와 함께 호출하면 함수 내부 메소드 [[Construct]]가 호출되고, new 키워드 없이 호출하면 함수 내부 메소드 [[Call]]이 호출된다.

일급 객체

다음 4가지 조건을 만족 하는 객체를 일급 객체라고 한다.

  1. 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.
  2. 변수나 자료구조(객체,배열)에 저장할 수 있다.
  3. 함수의 매개변수에 전달할 수 있다.
  4. 함수의 반환값으로 사용할 수 있다.

객체지향 프로그래밍

객체지향 프로그래밍이란 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나, 프로그램을 여러 개의 독립적 단위, 즉 객체의 집합으로 보는 프로그래밍 패러다임을 말한다.

0개의 댓글

관련 채용 정보