Skip to content

Latest commit

 

History

History
24 lines (18 loc) · 1.21 KB

File metadata and controls

24 lines (18 loc) · 1.21 KB

인사이드 자바스크립트 P. 121 ~ 123

28. 프로토타입 체이닝

28.1 프로토타입의 두가지 의미

  • 자바스크립트는 다른 객체지향 언어와는 달리 프로토타입 기반의 객체지향 프로그래밍이다.
  • 자바스크립트는 클래스가 없으므로 (es6부터 있음) 객체 리터럴이나 생성자 함수로 객체를 생성하는데 생성된 객체의 부모 객체가 바르 프로토타입이다.
  • 자바스크립트의 모든 객체는 부모인 프로토타입 객체를 가르키는 참조 링크 형태의 숨겨진 프로퍼티가 있다.(ECMAScript에서는 암묵적 프로토타입 링크로 부르며 [[Prototype]]에 저장됨)
// prototype 프로퍼티와 [[Prototype]] 구분 예제
    //Person 생성자 함수
        function Person(name) {
            this.name = name;
        }

    //foo 객체 생성
        var foo = new Person("foo");
        console.dir(Person);
        console.dir(foo);

자바스크립트에서 객체를 생성하는 건 생성자 함수의 역할이지만, 생성된 객체의 실제 부모 역할을 하는 건 생성자 자신이 아닌 생성자의 prototype 프로퍼티가 가르키는 프로토타입 객체다.