|
초판 1쇄 발행이 2011년도.
2016년에 읽는다 ^^;
---
함수와 메서드
객체의 프로퍼티가 함수일 경우 이를 메서드라고 부른다.
2장. 기초
2.2 전역 변수 최소화
전역 변수의 문제점: 앱 내의 다른 영역에서 목적이 다른 전역 변수를 동일한 이름으로 정의할 경우 서로 덮어쓰게 됨
전략: 네임스페이스 패턴, 즉시 실행 함수 활용, 변수 선언 시 항상 var 사용
var a = b = 0;
a는 지역변수, b는 전역변수임
전역 객체에 대한 접근
window라는 식별자를 직접 사용하지 않고 전역 객체에 접근하고 싶다면,
var global = (function() { return this; })();
호이스팅: 분산된 var 선언의 문제점
함수 내 여기저기서 여러 개의 var선언을 사용할 수 있지만, 실제로 함수 상단에서 선언된 것과 동일하게 동작(선언 시 값 할당했더라도 상단에서 선언만)
==보다는 ===쓰도록 하기
주석다는 습관을 들이자.
함수의 매개변수, 반환값이나 흥미로운 알고리즘같은거, 함수 용도
/** * make() returns a new element * based on the passed in tag name * * @param {String} tag * @return {Element} element */ function make(tag) { // ...stuff... return element; }
3장. 리터럴과 생성자
3.2 사용자 정의 생성자 함수
생성자 함수에 메서드 추가시, 생성자 호출할 때마다 메모리에 새로운 함수 생김. 공통 메서드는 프로토타입에 추가.
3.4 배열 리터럴
배열 판별은 typeof []가 아니라 Array.isArray([])
3.6 정규 표현식 리터럴
생성자(RegExp)보다는 정규식 리터럴을 쓰는게 낫다.
g: 전역 매칭
m: 여러 줄 매칭
i: 대소문자 구분없이 매칭
4장. 함수
4.1 배경 지식
function expression(or anonymous function)과 function declaration의 가장 큰 차이점은 호이스팅이다.
//함수 선언문
function foo() {console.log('foo');};
//함수 표현식
var bar = function () {console.log('bar');};
이렇게 선언 및 정의 하고 상단에서 호출하면 foo함수만 실행된다.
함수선언문은 정의된 함수 모두 호이스팅됨
함수 표현식은 선언부(var bar;)만 호이스팅됨
4.8 함수 프로퍼티 - 메모이제이션(Memoization) 패턴
함수에 프로퍼티를 추가하여 결과(반환 값)를 캐시하면 다음 호출 시점에 복잡한 연산을 반복하지 않을 수 있다.
5장. 객체 생성 패턴
5.1 네임스페이스 패턴
네임스페이스는 프로그램에서 필요로 하는 전역 변수의 개수를 줄이는 동시에 과도한 접두어를 사용하지 않고도 이름이 겹치지 않게 해준다.
5.4 모듈패턴
모듈 패턴을 늘어나는 코드를 구조화하고 정리하는 데 도움이 되기 때문에 널리 쓰인다.
모듈패턴은 다음 패턴들 여러 개를 조합한 것이다.
- 네임스페이스 패턴
- 즉시 실행 함수
- 비공개 멤버와 특권 멤버
- 의존 관계 선언
'공부 > 책' 카테고리의 다른 글
8. 어떻게 원하는 것을 얻는가 (스튜어트 다이아몬드) (0) | 2016.04.05 |
---|---|
7. 수난 (니코스 카잔차키스) (0) | 2016.04.05 |
5. 웹 엔지니어의 교과서(히토미디어 등) (0) | 2016.02.15 |
4. 고대 그리스의 영광과 몰락(김진경) (0) | 2016.02.15 |
3. 아마존은 왜? 최고가에 자포스를 인수했나(이시즈카 시노부) (0) | 2016.02.15 |