본문 바로가기
카테고리 없음

자바스크립트 object

by pagehit 2021. 7. 25.
반응형

거의 모든 object는 prototype을 상속한다. 하지만 몇몇 object만 prototype property를 간진다.

let o1 = Object.create({x: 1, y: 2}); // o1은 property x와 y를 상속
// Object.create()은 새로운 object을 만들고,
// 인자는 해당 object의 prototype이 된다

let o2 = Object.create(null); // o2는 어떤 property나 method를 상속하지 않는다
// null을 전달하면 toString()같은 기본적인 메소드도 상속하지 않는다

let o3 = Object.create(Object.prototype); // {}나 new Object()와 같음

 

object의 prototype은 chain을 형성한다. 아래 코드 참고.

let o = {};
o.x = 1;

let p = Object.create(o);
p.y = 2;

let q = Object.create(p);
q.z = 3;

let f = q.toString();
q.x + q.y; // 3

 

아래는 prototype의 property를 override하는 경우.

let unitcircle = { r: 1 };
let c = Object.create(unitcircle);
c.x = 1;
c.y = 1;
c.r = 2;

unitcircle.r // 1
c.r // 2

 

 

반응형

댓글