아디봉의.net
[자바스크립트] 코딩기법과핵심패턴: 리터럴생성자 (펌) 본문
자바스크립트 코딩기법과 핵심패턴 제 3장 리터럴과 생성자 정리
이 장에서 중요한 것은 생성자 사용을 자제하고 리터럴 표기법을 사용하라는 것임!
- 리터럴 표기법이 생성자 함수 사용보다 더 간결하고 짧다.
- 리터럴 표기법을 사용하면 유효범위 판별 작업이 발생하지 않는다.
- 리터럴 표기법을 사용하는 것이 더 안정적이다. new Object()에 인자가 동적으로 전달되는 경우 예기치 않는 결과가 나올 수 있다. var o = new Object(1);에서 o.constructor === Number는 true가 된다.
- 생성자는 함수내에 반환문이 없더라도 암묵적으로 this를 반환한다. 이 말은 this대신 다른 것도 반환할 수 있다는 것을 의미한다.
- 생성자 패턴을 사용하면 논리적 오류가 발생할 수 있다. 자바스크립트에서 생성자는 함수일 뿐이므로 new를 빼먹으면 생성자 내부에 this는 전역 객체를 가리키게 되어 의도치 않는 결과를 초래할 수 있다. 이를 우회하기 위해 다음과 같은 패턴을 사용한다.
1.
2.
3.
4.
5.
- JSON은 자바스크립트 객체 표기법으로 데이터 전송 형식의 일종으로 배열과 객체 리터럴 표기법의 조합이다.
- JSON을 다루기 위해 eval()을 사용하는 것은 금지한다.
- JSON은 가능하면 JSON.parse()와 JSON.stringify()를 사용한다. 이것은 ES 5 부터 추가되었다. 구형 브라우져인 경우 YUI나 jQuery용을 사용하자.
- 정규 표현식도 리터럴 타입이 안전하다. 생성자 타입(new RegExp())을 사용하는 것은 매칭시킬 패턴을 미리 알 수 없어 런타임에 문자열을 만들어야하는 경우이다.
- 원시 데이터 타입 레퍼 생성자는 사용하지 말자. 즉 new String("my string"); 이런거 말이다.
- 원시 데이터에서 "Hello there".split(' ')[0]; 이 동작할 수 있는 것은 일시적으로 객체로 변환하기 때문이다.
- 에러 객체. 자바스크립트 에러 객체는 Error(), SyntaxError(), TypeError() 3개이다. 이것은 throw문과 사용된다. 중요한 프로퍼티는 name, message이다. 하지만 throw문은 이 에러 객체를 사용하지 않아도 잘 동작한다. throw {name:.., message:..., extra:...}; 형태처럼 사용해도 무방하다.
- 다음은 권장되는 리터럴과 원시 데이터 타입이다.
01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
'JAVASCRIPT' 카테고리의 다른 글
[자바스크립트] 코딩기법과핵심패턴: 객체생성패턴 (펌) (0) | 2013.05.25 |
---|---|
[자바스크립트] 코딩기법과핵심패턴: 함수 (펌) (0) | 2013.05.25 |
[자바스크립트] 코딩기법과 핵심패턴: 기초 (펌) (0) | 2013.05.25 |
[자바스크립트] 코딩과기법핵심패턴 [펌] (0) | 2013.05.25 |
[자바스크립트] 함수및 자주사용정리 [펌] (0) | 2013.05.25 |