본문 바로가기

Programming Practice/Javascript

Function

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