[JS] javascrip OOP - Object.create()

Sean park·2020년 3월 25일
0

Javascript

목록 보기
3/3
post-custom-banner

이번에는 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;
profile
제 코드가 세상에 보탬이 되면 좋겠습니다.
post-custom-banner

0개의 댓글