Javascript prototype 기초
보통 javascript를 처음 접하게 되는 것은 웹을 공부할 때가 대부분일 것이다. 언어를 배울 때, javascript는 진입 장벽이 낮다고 평가된다. 즉 쉽게 배울 수 있는 언어라는 의미이다. 나 또한 쉽다고 생각을 했었다. 그러나! prototype이라는 단어를 듣고 그게 뭐지? 라는 생각을 했다. 간단하게 얘기를 하자면 JAVA나 C++ 같은 언어에서는 클래스라는 것이 존재하지만 javascript에는 클래스가 없고, 또한 동적으로 계속 변하는 클래스는 아니면서 클래스의 역할을 하는 녀석이 존재한다. 예제를 한번 보자. 1 2 3 4 5 function Person() { // 클래스의 역할을 한다. } var newPerson = new Person(); console.log(newPerson); function이 클래스의 역할을 하고 또 setter, getter가 따로 없다. newPerson 객체를 생성하고 log를 찍었을 때의 모습이다. __proto__ 라는 녀석이 보일 것이다. 이 속성이 newPerson을 만들기 위해 사용된 객체원형에 대한 숨겨진 연결 이다. "newPerson 객체의 프로토타입은 어떤 객체이다" 라는 것을 알려준다. 이 어떤 객체는 constructor 속성과 __proto__ 속성을 가지고 있는데, constructor( 생성자)는 function Person() 이라는 의미이다. new Operator를 통해 만들어진 newPerson객체는 function Person()을 자신의 프로토 타입으로 사용하여 만들어졌다. 즉, "function Person()가 prototype 객체" 라고 할 수 있다. 위 그림을 보면 결국 마지막으로 도달하는 곳은 Object prototype임을 알 수 있다. 결국 객체의 확장은 객...