해결된 질문
작성
·
339
1
프로토타입 동영상 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까지를 괄호로 감싸주어 '여기까지를 하나로 인식하라'고 강제해주면 제대로 동작하게 됩니다.
감사합니다 !!! 행복한 하루되세여 !!