javascript

Object.create(obj) 와 new 차이?

FaustK 2020. 1. 11. 22:00

Object.create 와 new 가 차이가 없는 줄 알았는데, 사실 큰 차이가 있었다. 

new Car() 하면 당연히 생성자가 실행이 되고 Object.create(Car.prototype) 을 하면 __proto__ 로 연결만 되는 것 같다.

 

function Car() {
  this.max = 350; 
  this.auto = true;
}
Car.prototype.run = function() {
    console.log('run~~~');
}

function ToyCar() {
	Car.call(this)
    this.model = "toy";
}

ToyCar.prototype = new Car();
ToyCar.prototype.constructor = ToyCar;

// ===console====
// Car {max: 350, auto: true}


-----------------

ToyCar.prototype = Object.create(Car.prototype);
ToyCar.prototype.constructor = ToyCar;

// ===console====
//Car {}