Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바스크립트 콜백
- 리팩토링
- Safari
- mysql #mysql최적화 #최적화
- 자바스크립트 유효범위
- 정규표현식
- 네이밍
- 변수명
- 자바스크립트 메소드
- 자바스크립트 객체
- 자바스크립트 정규표현식
- 자바스크립트
- 콜백
- 리팩토링기법
- 클린코드
- 클로저
- 자바스크립트 배열
- 정규식
- 자바스크립트 함수
- 프로토타입 상속
- 자바스크립트 문법
- 의미있는 이름
- 자바스크립트 클로저
- 자바스크립트 정규식
- 자바스크립트 상속
- 리팩토링 기법
- 리팩토링이란
- 모듈
- 프로토타입
- 자바스크립트 모듈
Archives
- Today
- Total
개발정리
javascript / Chapter3. 객체 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
들어가며
- 자바스크립트에서 단순 데이터 타입은
{
숫자,
문자열,
불리언(true/false),
null,
undefined
} - 이 외의 모든 값은 객체이다.
숫자, 문자열, 불리언은 메소드가 있기 때문에 유사객체라고 할 수 있다.
하지만, 값이 정해지면 변경 불가능 (immutable) - Class-free 클래스가 없어도 객체 생성 가능
- 객체 in 객체 in 객체 ... 설계 가능
그래프, 트리 같은 자료구조를 쉽게 표현할 수 있다. - 프로토 타입을 사용하면 객체 초기화 시간, 메모리를 줄일 수 있다.
1. 객체 리터럴
- 속성의 이름은 어떤 문자열이든 가능. 공백도
- "," 는 "속성명 : 값"을 구분
- 중첩 가능
2. 속성값 읽기
- 객체의 속성값은 대괄호로 읽어 올 수 있다.
var some[속성명] - if(속성명이 유효한 js 이름 && 속성이름이 예약어가 아닐 때)
마침표 표기법 사용가능.
some.속성명 - 객체에 속성명이 존재하지 않는다면 undefined 반환
- || 연산자를 사용하여 기본값 지정가능
var some = stooge[속성명] || "none" - 존재하지 않는 속성을 참조하려하면 TypeError 예외. 이런 경우를 방지하기 위해 && 연산 사용
var some = none.undefined && some.data
3. 속성 값의 갱신
- 객체의 값은 할당에 의해 갱신.
- 이미 할당된 속성명인 경우 속성 값 교체.
- 없는 속성명일 경우 객체에 속성 추가.
4. 참조
- 객체는 참조에 의해 전달.
- 결코 복사되지 않는다.
- 복사방법은 깊은 복사와 얕은 복사가 있다. 따로 찾아봐야함.
5. 프로토 타입
- 모든 객체는 "속성을 상속하는 프로토타입" 객체에 연결.
- 객체 리터럴로 생성되는 모든 객체는 자바스크립트 표준 객체인 object의 속성인 prototype(object.prototype)에 연결.
- 객체를 생성 할 때 프로토타입이 될 객체를 선택 가능
Object.create를 사용해 프로토타입이 될 객체 선택 가능하다. - 객체의 프로토 타입 연결은 값의 갱신에 영향 받지 않음.
즉, 객체를 변경하더라도 프로토 타입에는 영향이 가지 않는다. - 객체의 없는 속성을 읽으려는 경우, 해당 속성을 프로토 타입에서 찾으려한다.
이 과정을 프로토 타입 체인( prototype chain)이라고 한다.
그 어느 값이 없다면 undefined - 이런 일련의 과정을 위임(delegation)이라 한다.
6. 리플렉션
- 객체에 어떤 속성이 있는지?? 알아봐야함
- 이 때 type of 연산자는 속성의 타입을 살펴보는데 유용
- 그러나 프로토 타입의 속성 반환 할 수도 있다.
이것을 방지하기 위해 hasOwnProperty 메소드 사용. 프로토 타입은 바라보지 않음.
7. 열거
- for in 구문으로 객체의 모든 속성명 열거 가능.
프로토 타입 필터링 → type of 와 hasOwnProperty 사용
만약 순서 / 이름 순으로 뽑고 싶다면
- 이 방법은 프로토 타입을 바라보지 않는다.
8. 삭제
- delete 연산자
프로토 타입은 접근하지 않는다.
- 삭제한 속성명이 프로토 타입에 존재한다면 프로토 타입 속성값이 나타남.
9. 최소한의 전역 변수
- JS는 전역변수 사용이 아주 쉽다.
- 전역변수는 프로그램의 유연성을 약화 시킨다.
- 전역 변수 사용을 최소화하는 방법은 한 가지 전역 변수만 사용하는 것.
- 이 전역 변수를 다른 전역 변수의 컨테이너로 사용.
장점
1) 다른 어플리케이션이나 라이브러리 연동 시 발생하는 문제점을 줄일 수 있다
2) 가독성이 좋아진다. - Closure를 사용해 전역변수를 효과적으로 줄일 수 있다.
참고문헌
1. 더글라스 크락포드, 김명신 『자바스크립트 핵심가이드 javascript The good parts』, 한빛미디어, p39
'JS > javascript' 카테고리의 다른 글
javascript / Chapter4. 함수 2 (0) | 2017.02.08 |
---|---|
javascript / Chapter4. 함수 1 (0) | 2017.01.31 |
javascript / Chapter2.자바스크립트의 좋은 문법들 - 요약 (0) | 2017.01.23 |
javascript 객체 참조(2) (0) | 2017.01.10 |
javascript 참조 (0) | 2017.01.09 |
Comments