일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- TM128
- multipart
- map api v3
- String 배열
- 한국소프트웨어산업협회
- 컴퓨터 드라이버
- Oracle
- ajax 동기방식처리
- 폐업자에 대한 업종등의 정보내역
- KOSA
- String[]
- extundelete
- remote ip
- update
- eclipse hotdeploy
- http https
- 첫주 및 마지막주 날짜 전체 포함
- mysql trigger
- checkbox 값처리
- 주소 좌표변환
- jquery selectbox change
- ant path pattern
- mysql
- 서브쿼리
- group by max
- 아이폰키보드
- 접속ip
- partition by
- 2개 테이블
- ajax async
Archives
- Today
- Total
하은양 믿음군 효실맘 호홍홍집s
자바스크립트에서 함수사용에 대한 좋은 설명 본문
참조 : http://www.nextree.co.kr/p4150/
함수와 익명함수
// 함수선언식(function declaration)
function company() {
/* 실행코드 */
}
이와 같은 방식을 함수선언식(function declaration)이라고 합니다. 함수선언식으로 정의된 함수는 자바스크립트 인터프리터가 스크립트가 로딩되는 시점에 바로 초기화하고 이를 VO(variable object)에 저장합니다. 그렇기 때문에 함수 선언의 위치와는 상관없이 소스 내 어느 곳에서든지 호출이 가능합니다.
// 기명 함수표현식(named function expression)
var company = function company() {
/* 실행코드 */
};
// 익명 함수표현식(anonymous function expression)
var company = function() {
/* 실행코드 */
};
// 기명 즉시실행함수(named immediately-invoked function expression)
(function company() {
/* 실행코드 */
}());
// 익명 즉시실행함수(immediately-invoked function expression)
// Javascript 대가이신 더글라스 클락포트의 권장 표기법
(function() {
/* 실행코드 */
}());
// 익명 즉시실행함수(immediately-invoked function expression)
(function() {
/* 실행코드 */
})();
이렇게 정의한 방식을 함수표현식(function expression)이라고 합니다. 함수가 변수에 할당되었으므로 “함수는 객체이다.”라는 정의가 가능합니다. 함수표현식은 함수선언식과는 달리 스크립트 로딩 시점에 VO에 함수를 저장하지 않고 runtime시에 해석되고 실행되므로 이 두가지를 구분하는 것은 중요합니다.
함수선언식으로 함수를 정의하면 사용하기에 쉽지만 대규모 애플리케이션을 개발하는 경우 인터프리터가 너무 많은 코드를 VO에 저장하므로 애플리케이션의 응답속도는 현저히 떨어질 수 있으므로 주의해야 할 필요가 있습니다. 참고로, 스크립트 파일을 모듈화하고 이를 필요한 시점에 비동기 방식으로 로딩하여 http 요청을 줄이고 응답속도와 사용자 체감속도를 향상시킬 수 있습니다
'가벼운 배움 > javascript' 카테고리의 다른 글
input box click시 submit 처리하기 (0) | 2016.06.14 |
---|---|
네이버 지도API 이용한 좌표계값확인(LatLng -> TM128) (0) | 2016.05.27 |
ckeditor config 파일 설정값들 (0) | 2016.04.27 |
ckeditor에 글꼴추가하기 (0) | 2016.03.22 |
무한 스크롤링(infinite scrolling) (0) | 2016.03.09 |