-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
프로토타입 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에 찾아봐도 답을 모르겟어요
답변을 작성해보세요.
2
정재남
지식공유자2023.01.17
아마도 그사이 모던 브라우저들의 파싱 규칙이
new 뒤에 처음 등장하는 괄호 앞까지를 constructor로 파악하도록 바뀌었나 봅니다.
var royClone3 = new (Object.getPrototypeOf(roy).constructor)('로이클론3', 25)
이렇게 new 뒤부터 constructor까지를 괄호로 감싸주어 '여기까지를 하나로 인식하라'고 강제해주면 제대로 동작하게 됩니다.
답변 1