본문 바로가기

프로그래밍 언어 /javascript

Object.create()에 대해서.....

mdn을 참고해보자면 일단 Object.create()는 다음과 같다.

Object.create() 메서드는 지정된 프로토타입 객체 및 속성(property)을 갖는 새 객체를 만듭니다.

 

Object.create(proto[, propertiesObject])

매개변수

proto

새로 만든 객체의 프로토타입이어야 할 객체.

 

propertiesObject

선택사항. 지정되고 undefined가 아니면, 자신의 속성(즉, 자체에 정의되어 그 프로토타입 체인에서 열거가능하지 않은 속성)이 열거가능한 객체는 해당 속성명으로 새로 만든 객체에 추가될 속성 설명자(descriptor)를 지정합니다. 이러한 속성은 Object.defineProperties() 두 번째 인수에 해당합니다.

반환값

지정된 프로토타입 개체와 속성을 갖는 새로운 개체.

예외

proto 매개변수가 null 또는 객체가 아닌 경우 TypeError 예외가 발생(throw).

 

 

1. 일단 Object의 객체의 속성을 출력해보자..

console.dir -> 자바스크립트 객체의 속성들을 출력합니다. 

console.dir(Object);

그렇다면 Object의 객체의 속성은 이렇다 기억하고..

const obj = Object.create(Object.prototype); 

console.dir(obj)

 

Object.create()  기본적으로 2개의 인자를 받는다. 

  1. prototypeObject 

  2. property ( 옵션)이라서 없어도 된다. 

   

const Car = function(color) {    this.color = color; } 

const car1 = new Car('red'); 

const car2 = Object.create(Object.prototype); 

Console.dir(car1); 

Console.dir(car2); 

car1 car2 다른점은 car1 생성자가 실행이 되었고 car2 prototype 가져온 것이다. prototype 대한 참조가 목적이다. 

 

Const ToyCar = function( ){ }; 

ToyCar.prototype = Object.create(Car1.prototype); 

Const LegoCar = new ToyCar(); 

Console.dir(LegoCar); 

Console.dir(ToyCar) 

 

'프로그래밍 언어 > javascript' 카테고리의 다른 글

[javascript] closure 문제...  (0) 2020.01.03
[javascript] scope 문제...  (0) 2020.01.03
prototype에 대하여...  (0) 2020.01.03
toBe vs toEqual vs == vs ===  (0) 2019.12.25
array.sort()에 대해서...  (0) 2019.10.22