부제: 프로토타입 체이닝. JavaScript 객체지향 패턴. 이번 포스팅은 JavaScript의 prototype에 대해 다루는 글이다. 이미 이전 포스팅들에서 prototype에 대해 어느정도 다루었다. 프로토타입에는 두가지 의미가 있으며, 이를 명확하게 숙지하는 것이 중요하므로 다시 한 번 짚고 넘어가려고 한다. 1. JavaScript의 모든 객체는 '__proto__' 라는 숨겨진 프로퍼티를 갖고 있다. __proto__는 자신의 부모인 프로토타입 객체를 가리킨다. 이러한 링크를 'prototype Link'라고 부른다. 2. JavaScript의 모든 함수는 'prototype' 라는 숨겨진 프로퍼티를 갖고 있다. prototype은 자신에 new 키워드를 붙여 생성한 객체의 부모를 가리킨다...
지난 포스팅에서 배열(Array)가 객체(Object)로 취급된다는 것을 확인했다. 그리고 JavaScript에서는 함수(Function)도 객체다. 본격적인 이야기를 시작하기 전에, 1급객체(First-Class Citizens)에 대해 짚고 넘어가려고 한다. JavaScript의 함수를 1급 객체라고 표현하기도 한다. 1급 객체는 CS분야에서 자주 쓰이는 용어로, 아래와 같은 특징을 갖는다. ⊙ 변수나 데이터 구조안에 담을 수 있다. ⊙ 파라미터로 전달 할 수 있다. ⊙ 반환값(return value)으로 사용할 수 있다. ⊙ 동적으로 프로퍼티 할당이 가능하다. JavaScript의 함수는 위의 조건을 모두 만족한다. JavaScript의 함수는 입력값을 받아 결과를 반환하는 구조로, JAVA와 같은..
JavaScript는 객체기반의 스크립트 언어이다. 즉, JavaScript는 기본 타입(Primitive Type. 숫자, 문자열, boolean, null, undefined 등.)을 제외하고 모든 것이 객체로 이루어져있다. 그래서 JavaScript를 잘 다루려면 'Object'에 대해 이해하는 것이 가장 중요하다. 1. JavaScript의 객체 JavaScript에서 객체는 Key-Value 형태의 프로퍼티(Property)들을 저장하는 컨테이너이다. 즉, 객체는 프로퍼티로 구성되어있다. 이러한 프로퍼티의 Value에는 기본타입의 값이 들어가거나, 다른 객체가 들어가기도 한다. 심지어 함수가 포함되기도 한다. (이러한 함수를 '메서드'라고 부른다.) 2. 객체 생성 ⊙ Object() 생성자 방..