• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

프로토타입 getPrototypeOf(instance).constructor(n,a) 질문입니다.

23.01.16 17:12 작성 조회수 284

0

  • 프로토타입 동영상 7:07에 나오는

    function Person(n,a){
        this.name = n;
        this.age = a;
    }
    
    var roy = new Person('로이',30);
    
    var royClone1 = new roy.__proto__.constructor('로이클론1',10);
    var royClone2 = new roy.constructor('로이클론2',25);
    var royClone3 = new Object.getPrototypeOf(roy).constructor('로이클론3',25);
    var royClone4 = new Person.prototype.constructor('로이클론4',15);

    여기서 Object.getPrototypeOf(roy) 이 줄이 실행이 안됩니다,

Uncaught TypeError: Object.getPrototypeOf is not a constructor

이렇게 나오는데 MDN에 찾아봐도 답을 모르겟어요

답변 1

답변을 작성해보세요.

2

아마도 그사이 모던 브라우저들의 파싱 규칙이
new 뒤에 처음 등장하는 괄호 앞까지를 constructor로 파악하도록 바뀌었나 봅니다.


var royClone3 = new (Object.getPrototypeOf(roy).constructor)('로이클론3', 25)

이렇게 new 뒤부터 constructor까지를 괄호로 감싸주어 '여기까지를 하나로 인식하라'고 강제해주면 제대로 동작하게 됩니다.

kamser님의 프로필

kamser

질문자

2023.01.18

감사합니다 !!! 행복한 하루되세여 !!