1. function 특징
1) 1종 객체
아래 사항 가능
- 변수에 할당
- function의 parameter 로 설정
- function 의 return type 으로 설정
- literal 로 설정
- 동적 property 설정
2. function이 유효한 범위
예를 들어, function a 안에서 function b 가 선언됐다고 하자.
function a() {
function b() {
}
}
function b가 참조될 수 있는 범위는 function a 전체
=> function 이 선언되기 전 참조 가능 (hoisting mechanism)
cf. 변수가 참조될 수 있는 범위
- 변수 선언 ~ 변수가 선언된 함수 끝
** javascript의 유효범위는 block 단위가 아니라 function 단위 (java 는 block 단위)
cf. function이 유효한 범위를 참고해 function의 closure를 만든다.
3. function 의 암묵적 parameter
순번 |
항목 |
비고 |
1 |
arguments |
함수 호출 시 전달되는 변수 유사배열 (length 속성도 있고, arguments[1] 으로 호출도 가능하나, 배열은 아님) |
2 | this |
함수 (호출) context , this를 jQuery 오브젝트로 만들기 : $(this) |
4. 함수 호출 방법과 this 에 설정된 객체
순번 | 방법 |
this에 할당되는 객체 |
1 | 함수로 호출 |
window |
2 | 객체의 method 로 호출 |
객체 |
3 | 생성자로 호출 |
객체 |
4 | apply, call 로 호출 |
apply, call 에서 할당하는 객체 |
1) 객체의 method로 호출
2) 생성자로 호출
- 생성자 함수명은 명사, 대문자로 시작
- var 객체명 = new 생성자함수명(); 으로 호출하며,
객체 생성, 생성자함수 내 this 에 생성된 객체 할당, 객체 조작, 객체 return 순으로 작업이 진행된다.
3) apply, call 로 호출
fucntion명.apply(this에 설정할 객체, arguments배열);
fucntion명.call(this에 설정할 객체, arguments목록);
참고) $.ajax 에서 this는 jquery 객체($) 이다. context 속성을 통해 this 변경을 할 수 있다.
'Programming Practice > Javascript' 카테고리의 다른 글
delegation (0) | 2016.07.31 |
---|---|
javascript convention (0) | 2016.07.31 |
테스트 환경 구성 (0) | 2016.04.24 |
prototype (0) | 2016.02.10 |
즉시실행함수(Immediate function) (0) | 2016.02.10 |