JS Study — Ch07. 함수 표현식

함수 선언과 함수 표현식

함수 선언에서는 호이스팅이 발생한다는 점을 잊지 말것.
재귀 호출시에는 arguments.callee를 사용하거나 이름 있는 함수 표현식을 이용할것(전자는 strict mode에서 사용할 수 없음)

클로저는 외부 객체의 값을 '박아서' 사용하는게 아닌, 스코프 체인을 참조해서 가져온다는 점을 잊지 말것. 예를 들어 다음과 같은 코드는,

function createFunction() { var result = new Array();
for (var i=0; i < 10; i++) { result[i] = function() { return i; }; } return result;
}

항상 10을 반환하는 함수들의 배열을 반환한다.

익명 함수 내부에서 this를 사용할 때에는 뭘 가리키게 될지를 주의깊게 고려할것.

즉시호출함수를 통해 다른 언어에서의 코드블록을 흉내낼 수 있음.

고유 변수

함수 안에서 정의한 변수는 함수 밖에서 접근할 수 없으므로 모두 고유 변수라고 간주.

외부에서는 접근할 수 없으므로 클로저를 이용해서 특권 메서드를 생성한뒤 접근하면 됨.

정적 변수, 함수는 고유 스코프 + prototype을 통해서 구현

같은 방법으로 모듈 패턴(싱글톤 패턴)을 구현할 수 있음

“<<프론트엔드 개발자를 위한 자바스크립트>>(2013 인사이트, 한선용 옮김)에서 요약한 글입니다.”

Show your support

Clapping shows how much you appreciated Shia’s story.