JS 웹 프로그래머는 테스트의 좋은 기능을 공유 , 에 , 사실, 일반적으로, JS 특정 작업을 패키지로 기능을 사용하거나 모듈 작동 작성 프로그램.
. 선언적 기능
1. 일반 함수 선언
기능 상자 (NUM1, NUM2) {
NUM1 + NUM2를 반환;
}
2. 변수 초기화 기능을 사용하여
VAR 상자 = 함수 (NUM1, NUM2) {
NUM1 + NUM2를 반환;
};
3. 기능 생성자
VAR 상자 = 새로운 기능 ( 'NUM1', 'NUM2은', 'NUM1를 반환 + NUM2');
두개 의 값의 함수로서
자체 ECMAScript를 함수 이름은 함수 값으로 사용될 수있는 변수이다. 즉, 단지 같은 파라미터와 같은 다른 함수로 전달 함수를 전달할 수 있고, 함수는 다른 함수의 결과로서 반환 될 수있다.
기능 상자 (sumFunction, NUM) {
sumFunction (NUM)을 반환;
}
나는 {(NUM)를 작동
반환 NUM + 10;
}
VAR 결과 상자 = SUM (10);
세 . 내부 속성을 함수
: 함수 내부, 두 가지 특별한 객체가 인수는 AND이. 인수 배열 객체 클래스 함수에 전달 된 모든 파라미터를 포함한다. 주 목적은 인자 역할을한다. 그러나이 객체는 arguments 객체가 함수에 대한 포인터입니다 수신자의 속성을 지명했다.
기능 박스 (NUM) {
경우 (NUM <= 1) {
1을 반환;
} 다른 {
* 반송 박스 (NUM-1) 여부;
}
}
계승 함수의 내부 함수는 자신을 호출 할 수 있도록, 재귀 알고리즘을 사용하는 것이 일반적으로 함수 이름은 문제가되지 않습니다 변경할 수 있지만 한 번 자체 하나 하나를 수정하기 위해 내부 필요성을 호출, 함수 이름을 변경하지 않는 경우,. 이 문제를 해결하기 위해, 우리는 대신 arguments.callee를 사용할 수 있습니다.
기능 박스 (NUM) {
경우 (NUM <= 1) {
1을 반환;
} 다른 {
복귀 * arguments.callee를 NUM (NUM-1);
}
}
또 다른 특별한 목적은 내부 함수 인 이이 유사한에서 자바 C 번호의 동작. 즉,이 범위가있는 것을 조작 또는 기능 CALL 명령을 수행하는 목적에 따른 기능을 말한다. PS : 당신이 전역 범위에서 함수를 호출 할 때,이 객체 참조 창입니다.
window.color = '레드';
경고 (this.color);
각 상자 = {
색상 : '블루',
sayColor : 함수 () {
경고 (this.color);
}
};
box.sayColor ();
경고 (this.color);
네 기능의 속성 및 메서드
ECMAScript를 오브젝트의 함수이므로,이 함수 특성 및 방법이있다. 길이와 프로토 타입 : 각 함수는 두 개의 속성이 포함되어 있습니다. 상기 길이 속성 파라미터를 수신라는 원하는 기능들의 수를 나타낸다.
기능 상자 (이름, 나이) {
경고 (이름 + 세);
}
경고 (box.length);
기능 상자 (NUM1, NUM2) {
NUM1 + NUM2를 반환;
}
함수 sayBox (NUM1, NUM2) {
box.apply 리턴 (본 [NUM1, NUM2]); }
함수 sayBox2 (NUM1, NUM2) {
box.apply (이, 인자) 반환;
}
경고 (sayBox (10,10));
경고 (sayBox2 (10,10));
동일한 방식으로 전화 () 메소드 ()가 방법으로 만 수신 파라미터 다를 적용. 호출 () 메소드를 들어, 첫번째 파라미터 범위, 변화 없음 변화 만 나머지 매개 변수 함수로 직접 전달된다.
기능 상자 (NUM1, NUM2) {
NUM1 + NUM2를 반환;
}
함수 callBox (NUM1, NUM2) {
box.call (이, NUM1, NUM2)을 반환;
}
경고 (callBox (10,10));
VAR 색 = '레드';
각 상자 = {
색상 : '블루'
};
() {sayColor를 작동
경고 (this.color);
}
sayColor ();
sayColor.call (이 께);
sayColor.call (창);
sayColor.call (상자);
우리가 사용하는 경우 호출 시간 (상자) 방법, 런타임 환경 sayColor () 메소드는 상자 개체가되었다.
사용 의 가장 큰 혜택의 범위를 확장하기 위해 () 호출을 () 또는 적용하면 객체가 의미가 상호되는 모든 커플 링 관계 및 커플 링 방법이 발생할 필요로 확장 연쇄 반응이 발생합니다 유지하지 않는다는 것입니다.