#13. 상속, Prototype

Seulyi Yoo·2022년 7월 9일
0

javascript grammar

목록 보기
13/20
post-thumbnail

Prototype

const car = {
  wheels: 4,
  drive(){
    console.log('drive..');
  },
}

const bmw = {
  color: 'red',
  navagation: 1,
};

const benz = {
  color: 'black'
};

const audi = {
  color: 'blue'
};

bmw.__proto__ = car;
benz.__proto__ = car;
audi.__proto__ = car;

const x5 = {
  color: "white",
  name: "x5",
};

x5.__proto__ = bmw; // prototype chain

// hasOwnProperty는 객체가 직접 가지고 있는 것만 반환함

생성자함수

// const car = {
//   wheel = 4;
//   drive = function(){
//     console.log("drive..");
//   },
// };

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

// Bmw.prototype.wheels = 4;
// Bmw.prototype.drive = function(){
//   console.log("drive..");
// };
// Bmw.prototype.navigation = 1;
// Bmw.prototype.stop = function(){
//   console.log("STOP!");
// };

Bmw.prototype = {
  constructor: Bmw,
  wheels: 4,
  drive() {
   console.log("drive..");
  },
  navigation: 1,
  stop() {
   console.log("STOP!");
  },
};

const x5 = new Bmw("red");
const z4 = new Bmw("blue");

// x5.__proto__ = car;
// z4.__proto__ = car;

// instance of 
// constuctor (생성자)
const Bmw = function(color){
  const c = color;
  this.getColor = function(){
    console.log(c);
  };
};

const x5 = new Bmw("red");
profile
성장하는 개발자 유슬이 입니다!

0개의 댓글