자바스크립트의 함수
1. 자바스크립트의 함수의 역할
- 호출 가능한 루틴으로서의 함수
- 값으로서의 함수
- 인자로 전달 가능
- 변수에 할당 기능
- 다른 함수의 반환값으로 사용 가능
- 다른 인스턴스를 생성할수 있는 요소 객체 타입으로서의 함수
2. 함수 모델링
- 함수하나를 만들 경우 “변수 스코프” , “실행 코드 블록”, “공개 변수 영역”, “프로토타입 객체” 구조가 만들어 집니다.
- 변수 스코프
- 내부에서 접근 가능하지만 외부에서 접근 불가능한 변수 java) private variable
- 실행 코드 블록
- 일반적인 객체에 대한 함수 java) public method
- 공개 변수 영역
- 런타임 시 동적으로 추가되는 멤버의 함수
- 프로토 타입 객체
- 부모의 역할을 하는 타입 객체 나중에 다시 설명
function add(x, y){ return x + y; }
3. 함수 정의
- 함수 리터럴 이용
var add = function(x, y){ return x + y; }
- Function 생성자 사용
var add = new Function("x","y","return x + y");
- 함수 정의문 사용
function add(x, y){ return x + y; }
4. 함수 인자
- arguments
- Arguments 라는 객체 타입에 매개 변수가 할당 됩니다.
- arguments는 리스트 형태이며 for 문을 통해 매개변수에 접근이 가능 합니다.
- 매개변수가 설정되어 있던 안되어 있던 상관이 없음 (java에선 컴파일 오류 발생)
- arguments.callee
- 생성자의 this와 유사한 개념 2번째 역할에서의 this와 같은 개념
- 재귀호출을 구현 할때 유용하게 사용 가능
function makeFactorialFunc(){ return function(x){ if(x <=1) return 1; return x * arguments.callee(x - 1); // 익명함수를 나타냄 } }
5. Function
- 실제 코딩에서 사용하지 않음
- function과 구분이 필요
- Function == 객체 , function == 예약어
6. 함수 객체
7. 익명 함수
- 이름이 없는 함수 일회성에서 사용 자바의 익명 클래스
var v = function(x,y){ return x + y}; // 함수 정의하고 변수에 저장 o.func(function(x,y){ return x + y}); // 함수를 정의하고 다른 함수에 인자로 전달 var added = (function(x) {return x + y;})(1,2); // 함수를 정의하고 바로 호출한다.
8. 중첩 함수
- 함수 안에 함수가 정의 되어 있는 형태의 함수 입니다.
- 안에 있는 함수는 밖에 있는 함수 범위 밖에서는 사용 불가능 합니다.
- 정보은닉, 캡슐화 에서 사용 됩니다.
9. 콜백 함수
- 라이브러리 함수에서 실행을 마치고 나면 다시 특정 함수를 호출하는 구조입니다.
- 자바스크립트의 Single Thread 의 단점을 콜백 함수를 통한 이벤트 방식으로 처리 합니다.
- 이벤트 핸들링과 비슷한 구조 입니다.
- jQuery에 ajax 사용법이 그 대표적인 예 입니다.
$.ajax({ url : "....", success : function(){.....}, //콜백함수 error : function(){.....} // 콜백함수 });
회고
- 신현민 : ..
댓글 없음:
댓글 쓰기