October 20, 2021
new F()
와 같은 생성자 함수를 이용하면 새로운 객체를 만들 수 있다는 걸 앞서 배운 바 있습니다.
그런데 F.prototype
이 객체면 new
연산자는 F.prototype
을 사용해 새롭게 생성된 객체의 [[Prototype]]을 설정합니다.
이번 챕터에선 생성자 함수를 이용해 만든 객체에 [[Prototype]]
을 설정해 주는 방법에 대해 간략히 알아보았습니다. 이 방법을 기반으로 하는 고급 프로그래밍 패턴에 대해선 추후 학습할 예정입니다.
몇 가지 사항만 명확하게 이해하고 있으면 지금까지 배운 것들은 복잡하지 않습니다.
F.prototype
프로퍼티는 [[Prototype]]
과는 다릅니다. F.prototype
은 new F()
를 호출할 때 만들어지는 새로운 객체의 [[Prototype]]
을 설정합니다.F.prototype
의 값은 객체나 null만 가능합니다. 다른 값은 무시됩니다."prototype"
를 설정하고, 이 생성자 함수를 new
를 사용해 호출할 때만 적용됩니다.일반 객체에 "prototype"
프로퍼티를 사용하면 아무런 일이 일어나지 않습니다.
let user = {
name: "John",
prototype: "Bla-bla" // 마술은 일어나지 않습니다.
};
모든 함수는 기본적으로 F.prototype = { constructor : F }
를 가지고 있으므로 함수의 "constructor"
프로퍼티를 사용하면 객체의 생성자를 얻을 수 있습니다.