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개의 인자를 받는다.
-
prototypeObject
-
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 |