프로그래밍/JavaScript

JavaScript 핵심가이드 정리 1

seungdols 2016. 3. 22. 20:34

자바스크립트 핵심 가이드 정리

객체

자바스크립트에서 단순한 데이터 타입(Primitive data type)은 숫자, 문자열, 불리언, null, undefined가 있다.
단, 여기서 숫자와 문자열 그리고 불리언은 메소드가 존재하기에 유사 객체라고도 할 수 있으며 Immutable 성격을 지닌다.
즉, 단순 데이터 타입 이외의 다른 값들은 객체라고 말한다.

자바스크립트에서 말하는 객체란?!


  • 변형 가능한 속성들의 집합이라고 할 수 있다.
  • 배열, 함수, 정규 표현식 또한 객체이다.
  • 이름과 값이 있는 속성들을 포함하는 컨테이너라고 할 수 있다.
    • 속성의 이름은 문자열이면 모두 가능하다.(빈문자열도 포함)
    • 속성의 값은 undefined를 제외한 자바스크립트에서 사용되는 모든 값이 사용 될 수 있다.
  • 자바스크립트의 객체는 클래스가 필요 없다. (Class-free)
  • 객체는 참조 방식으로 전달 되며, 복사 되지 않는다.
프로토타입(prototype)

  • 모든 객체는 속성을 상속하는 프로토타입 객체에 연결되어 있다.
  • 객체 리터럴로 생성되는 모든 객체는 자바스크립트의 표준 객체인 Object.prototype 객체에 연결 된다.
  • 프로토타입 연결은 값의 갱신에 영향을 받지 않습니다. 즉, 객체를 변경하더라도 객체의 프로토 타입에는 영향이 없다.
  • 프로토타입 연결은 오로지 객체의 속성을 읽을 때만 사용한다.
  • 해당 속성이 객체에 없는 경우 자바스크립트는 프로토타입 객체에서 찾고, Prototype chain의 가장 마지막에 있는 Object.prototype까지 계속해서 검색하며, 만약 존재 하지 않는 경우 undefined를 반환한다. 이런 내부 동작을 delegation 이라고 한다.
  • 프로토타입 관계는 동적 관계로 새로운 속성이 추가되면, 해당 프로토타입을 근간으로 하는 객체들에 즉각적으로 적용이 된다.
반응형