Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

동그란 도그린

[모던 자바스크립트 Deep Dive🦎] 17장 : 생성자 함수에 의한 객체 생성 본문

FrontEnd/Javascript

[모던 자바스크립트 Deep Dive🦎] 17장 : 생성자 함수에 의한 객체 생성

도그rin 2023. 5. 21. 23:45

📍 Object 생성자 함수

  • new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환
  • 🔅 생성자 함수 : new 연산자와 함께 호출, 객체(인스턴스)를 생성하는 함수

 

📍 생성자 함수

  • 객체 리터럴에 의한 객체 생성 방식은 단 하나의 객체만 생성 ⇒ 동일한 프로퍼티를 갖는 객체를 여러개 생성해야 하는 경우에는 매번 같은 프로퍼티를 기술해야 함 ⇒ 비효율적
  • 생성자 함수에 의한 객체 생성 방식은 객체 생성 템플릿(클래스)처럼 생성자 함수를 사용하여 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성 가능
  • 🔅 this : 객체 자신의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수

 

  • new 연산자와 함께 생성자 함수를 호출하지 않으면 생성자 함수가 아니라 일반 함수로 동작
  • 생성자 함수가 인스턴스를 생성하는 건 필수이지만, 생성된 인스턴스를 초기화하는 것은 옵션
  • 암묵적으로 생성된 빈 객체(인스턴스) this에 바인딩됨
  • 🔅 바인딩 : 식별자와 값을 연결하는 과정, this 바인딩이란 this와 this가 가리킬 객체를 바인딩하는 것

 

  • 함수는 개체이지만 일반 객체와 다름
    • 일반 객체는 호출할 수 없지만, 함수는 호출 가능함
  • 함수가 일반 함수로 호출되면 함수 객체의 내부 메서드 [[Call]]이 호출됨 ⇒ callable
  • new 연산자와 함께 생성자 함수로 호출되면 내부 메서드 [[Construct]]가 호출됨 ⇒ non-constructor
  • 생성자 함수는 파스칼 케이스(첫 문자를 대문자로)로 명명하여 일반 함수와 구별하도록 함
Comments