
Object.prototype : JS에서 모든 객체가 기본적으로 상속받는 것
prototype 을 상속받아 객체를 만들 때 자동으로 내장 메서드를 사용가능한 것.
Object.create(null) 로 선언하면 prototype 없이 순수한 객체가 된다. (Object 에서 Map 처럼 충돌이 나지않게 하는 방법)
prototype을 이용한 상속도 가능
function Parent(pItem){
this.pItem = pItem;
// this.pItem : 생성 된 child 객체의 프로퍼티 (계속 유지됨)
// pItem : 매개변수 (함수 종료와 함께 사라짐)
}
Parent.prototype.Hello = function() {
console.log(Parent item is ${this.pItem}`)
}
const child = new Parent('here')
child.Hello(); // 'Parent item is here'
this.pItem = pItem 에서 객체의 프로퍼티로 자동 추가되기 때문에 Parent 함수에서 pItem 는 선언이 필요없다.
this가 가리키는 객체에 새로운 속성이 필요하면 자동으로 생성되기 때문에 별도의 선언이 필요없다.
매개변수를 사용하지않고 직접할당할 수도 있다.
function Parent(){
this.pItem = 'here';
}
결론적으로 this를 사용해서 자동으로 객체에 프로퍼티를 추가하는 역할을 한다.
여기에서 this는 생성된 객체를 가리키므로 해당 객체에 프로퍼티가 동적으로 추가되는 것이다.
this 를 통해 객체에 저장해야만 계속 사용이 가능하다.