-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
인스턴스 생성 가능 여부 기준에 대하여.
21.02.02 13:51 작성 조회수 131
0
prototype 값 존재 여부가 인스턴스 생성 가능 여부를 결정한다고 설명하셨는데 다음과 같은 코드가 동작하는 이유는 무엇인가요?
function Test() {};
Test.prototype = undefined;
var t = new Test(); // 객체 생성
console.log(t); // 객체 출력
답변을 작성해보세요.
3
김영보
지식공유자2021.02.02
Test.prototype = undefined;
==> Test.prototype이 존재하지 않는 것이 아니라 prototype이 존재하는 것입니다. undefined가 값이므로 prototype을 지우는 것이 아니라 prototype이 프로퍼티 이름이 되고 undefined가 프로퍼티 값이 됩니다. Math, JSON 오브젝트는 prototype 자체가 없으며 이러한 오브젝트는 new 연산자를 만들 수 없습니다.
추가해서 prototype에 null을 할당하면 더 이상 prototype에 메소드를 연결하지 않겠다는 의도입니다. undefined를 설정하지는 않습니다.
--------------------
"prototype 값 존재 여부"가 아니라 "값"을 제외한 "prototype 존재 여부"가 정확한 표현입니다.
답변 1