- functional - 함수를 생성하고 그 안에 메소드를 넣는다
- functional-shared - 메소드를 따로 생성하고 함수에 참조값 형식으로 넣는다 // 메모리 효율적 사용 가능
- prototypal - 함수를 생성할때 Object.create() 를 이용하여 prototype을 참조한다.
- pseudoclassical - 생성자 함수를 이용해 만든다, 메소드는 생성자.prototype.메소드로 추가한다.
- new 키워드를 통해 인스턴스를 생성
let myCar = new Car();
prototype
&& __proto__
출처 : 생활코딩 유튜브 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이라는 함수가 사용 가능하다.