이번에는 Object.creat() 메소드에 대해 알아보겠습니다.
Object.creat() 메소드는 매개변수로 들어가는 프로토타입 객체 및 프로퍼티를 갖는 새 객체를 생성합니다.
이는 prototype의 개념과 관련이 있습니다. 바로 코드를 통해 알아보겠습니다.
function labtop(){
this.keyboard = "keyboard"
this.display = "display"
}
const mac = Object.create(labtop);
위의 코드를 보면 mac이라는 새로운 친구를 만드는데 Object.create()라는 것을 할당받고 있습니다. Object.creat()를 읽어보면 대충 새로운 객체를 만든다는 의미인것 같습니다.
맞습니다. Object.creat()는 새로운 인스턴스를 만들때 사용하는데요. 중요한것은 이 메소드가 단순히 인스턴스를 만들어주는것이 아닌, 새로 만들 객체의 prototype을 지정해 줄수 있다는 점입니다.
function labtop(){}
labtop.prototype.keyboard = "keyboard";
laptop.prototype.display = "display"
const mac = new labtop();
prototype 예시를 보면 다음과 같이 labtop을 상속받아 mac이라는 인스턴스를 생성했습니다.
하지만 Object.creat()를 사용해서 new labtop() 대신 Object.create(labtop)로 새로운 인스턴스를 생성할수 있습니다.
그리고 또 한가지 Object.create()를 사용하여 객체를 만들게 될 경우 constructor가 없기 때문에 아래와 같이 constructor를 다시 지정해 줘야 한다.
mac.prototype = Object.create(labtop.prototype);
mac.prototype.constructor = mac;