1. 상속패턴

  • functional - 함수를 생성하고 그 안에 메소드를 넣는다
  • functional-shared - 메소드를 따로 생성하고 함수에 참조값 형식으로 넣는다 // 메모리 효율적 사용 가능
  • prototypal - 함수를 생성할때 Object.create() 를 이용하여 prototype을 참조한다.
  • pseudoclassical - 생성자 함수를 이용해 만든다, 메소드는 생성자.prototype.메소드로 추가한다.
    • new 키워드를 통해 인스턴스를 생성
    • let myCar = new Car();

2. prototype && __proto__

image.png

출처 : 생활코딩 유튜브 https://www.youtube.com/watch?v=wT1Bl5uV27Y

  • Person의 함수에는 prototype 이 있다.
    • Person.prototype.constructor === Person // true
  • kim / lee 라는 인스턴스의 __proto__ 는 Person.prototype 이다.
    • kim.__proto__ === Person.prototype
    • kim의 부모는 Person이고 Person의 부모는 Object이다.
  • kim 인스턴스에 sum이라는 함수는 없지만 kim.__proto__ 인 Person.prototype에는 sum 함수가 있으므로 chaining에 의해 sum이라는 함수가 사용 가능하다.