1장 : 자바스크립트의 개념

장윤희·2022년 4월 14일
0

JsPatterns

목록 보기
1/5
post-thumbnail

객체지향

number, string, boolean, null, undefined뿐만 아니라(이들은 원시데이터 타입)
number, string, boolean은 객체의 표현과 동일한 원시데이터 타입 래퍼를 가진다

함수또한 객체이다.

함수 또한 프로퍼티와 메서드를 가질 수 있다.
변수를 선언하면 이미 객체를 다루고 있는 것
1. 변수는 자동으로 활성화 객체라 불리는 내부적인 객체의 프로퍼티가 된다.
(전역변수의 경우 전역객체의 프로퍼티가 됨)
2. 변수는 자신만의 프로퍼티를 갖기 때문에 실제로 객체와 비슷하다
변수의 프로퍼티를 어트리뷰트라고 한다.
어트리뷰트에 따라 해당 변수가 수정되거나 삭제 될 수 있는지
for-in 루프로 순회할때 열거 될 수 있는지 동의여부가 결정된다

객체란?

이름이 지정된 프로퍼티의 모음, 키-값 쌍으로 이루어진 목록
객체의 프로퍼티가 함수일 경우 메서드라고 부른다
객체는 언제든지 수정 가능

객체타겟

  • 네이티브 객체 : ECMAScript 표준에 의해 정의된 객체 (내장객체 또는 사용자 정의 객체로 분류)
  • 호스트 객체 : 호스트 환경에서 정의된 객체 (ex) window객체나 모든 DOM객체)

클래스가 없다

객체를 생성하기 위해 클래스를 만들 필요가 없다
객체에 원시 데이터 타입이나 함수, 다른 객체를 추가하여 객체의 프로퍼티를 구성한다
빈 객체는 완전히 비어있는것이 아니다
빈 객체는 몇몇 내장 프로퍼티를 이미 가지고 있지만 자신이 직접 소유한 프로터피가 없을 뿐이다
'클래스 상속보다는 객체의 합성을 우선시 하라'
: 객체를 합성하는 것이 부모-자식 상속 체인을 사용하거나 클래스화하는 것 보다 나은 방법이다

프로토타입

상속은 주로 프로토타입을 사용한다
프로토타입은 하나의 객체이며 사용자가 생성한 모든 함수는 새로운 빈 객체를 가리키는 프로퍼티(prototype)을 가진다
프로토타입 객체는 객체 리터럴이나 Object() 생성자로 만든 객체와 거의 비슷하다
프로토타입 객체의 프로퍼티가 가리키는 것이 내장된 Object()가 아닌 사용자가 생성한 함수라는 것만 다르다
사용자는 이 빈 객체에 멤버를 추가할 수 있고, 상속을 통해 다른 객체가 이 객체의 프로퍼티를 자기것 처럼 쓰게 할 수도 있다
프로토 타입이 객체라는것, 모든 함수가 프로퍼티를 가진다

profile
멋쟁이

0개의 댓글