prototype은 new 키워드를 통해서 만드는 생성자 함수에서 반환된 결과.
이것을 인스턴스라고 한다. 이젠 new 로 통해서 생성자 함수로 반환된 인스턴스를 활용한다..?
getFullName으로 이름들을 선언 해준다. 그리고 console.log에서 변수의 이름과 getFullName을 점표기법으로 출력해주면 출력 값엔 띄어쓰기가 된 firstName과, lastName이 잘 출력이 될 것이다.
또 다른 const로 변수의 이름을 yliem이라는 변수의 이름을 선언해 주고 똑같이 출력을 시키고 싶다. 이럴 땐,
이렇게 똑같이 선언해 주면 똑같은 출력 값이 나온다. 선언해준
firstName과 lastName이 출력이 된다. 하지만 여기서 getFullName이 두번이나 할당이 되는데 이것은 되게 비효율적이라고 했다. 그래서 빌리는 코드를 써서 코딩을 해 보겠다.
이렇게 console.log에 call를 해서 yliem을 선언해주고 출력하면 아까 처럼 그렇게 두 번의 같은 코드를 사용하지 않아도 똑같이 출력이 되는 것을 확인 할 수 있다.
하지만 재활용하는 코드가 하나밖에 없으면 괜찮은데, 여러개라면 많이 불편할 거 같다.
그래서 편리하게 쓸 수 있는 방법으로는 prototype을 쓰는 것이다.
이번에는 위에랑 똑같이 출력 값을 보내려고 한다. 그래서 이번엔 prototype을 이용해서 코드를 써 봤는데, new로 이용한 생성자 함수를 이용해 각자 선언 할 이름을 적어주고 User.prototype으로 getFullName에 일반 함수를 넣어준다. 화살표 함수를 넣어주면 안된다고 했다. 그래서 아까 썼던 return으로 넣어준다 그래서
console.log에 각자의 선언해줄 이름들만 선언해 주면 출력이 된다.
솔직히 prototype보단 일반 함수가 더 쉬운데, 보다 편하기 때문에,
prototype을 쓴다고 했고, 또 활용도도 매우 많기 때문에 쓴다고 했다.
아직 이해가 잘 안되지만, 더 많이 활용 해 보고, 사용을 한다라면 이해가 될 거라고 생각한다. 이 방법이 SE6 2015년에 적용을 했다 라고 들었다.
더 많은 복습과 공부가 필요할 거 같다.