js 진급--- 익명 함수 및 함수 패키지

3505 단어

1. 익명 함수


1.1 함수의 정의는 먼저 함수의 정의를 간단하게 소개하는데 크게 세 가지 방식으로 나눌 수 있다


첫 번째: 이것도 가장 일반적인 것이다
function double(x){
    return 2 * x;   
}

두 번째: 이런 방법은 Function 구조 함수를 사용했는데 매개 변수 목록과 함수체를 문자열로 하는 것은 매우 불편하고 사용을 권장하지 않습니다.
var double = new Function('x', 'return 2 * x;');

세 번째:
var square= function(x) { return 2* x; }

"="오른쪽의 함수는 익명 함수입니다. 함수를 만든 후에 이 함수를 변수 square에 부여합니다.

1.2 익명 함수 생성


첫 번째 방식: 위에서 말한 정의 square 함수인데 이것도 가장 자주 사용하는 방식 중의 하나이다.
두 번째 방식: 괄호 하나 이상 읽기 강화
(function(x, y){
    alert(x + y);  
})(2, 3);

여기에 익명 함수 (첫 번째 괄호 안에) 를 만들었습니다. 두 번째 괄호는 이 익명 함수를 호출하고 인자를 전송하는 데 사용됩니다.

2. 패키지 닫기


패키지를 닫는 의미: 패키지를 닫으면 함수의 끼워넣기입니다. 내부의 함수는 외부 함수의 모든 변수를 사용할 수 있습니다. 외부 함수가 실행되었더라도.다음 예를 들어 장면 사용

코드 최적화를 위한 함수 내 익명 함수 예시

function checkClosure(){
    var str = 'rain-man';
    setTimeout(
        function(){ alert(str); } // 
    , 2000);
}
checkClosure();

checkClosure가 실행된 후str가 방출되지 않았습니다. 이것은 setTimeout 내의 익명 함수에 이str의 인용이 존재하기 때문입니다.2초가 지나서야 함수 안에 있는 익명 함수가 실행되고str가 방출됩니다.



예 2: 패키지 닫기 만들기

var oEvent = {};
(function(){ 
    var addEvent = function(){ /* */ };
    function removeEvent(){}

    oEvent.addEvent = addEvent;
    oEvent.removeEvent = removeEvent;
})();

대상 oEvent는 내부 변수를 가리키기 때문에 메모리에서 방출되지 않습니다.이것은 전체 변수의 사용을 크게 줄이고 웹 페이지의 안전성을 강화시켰다.두 번째 () 시작 함수는 작업 과정을 실행합니다.



예 3: 로컬 변수 사용

var outer = null;

(function(){
    var one = 1;
    function inner (){
        one += 1;
        alert(one);
    }
    outer = inner;
})();

outer();    //2
outer();    //3
outer();    //4

이 코드의 변수one는 국부 변수 (한 함수 안에 정의되어 있기 때문에) 이기 때문에 외부에 접근할 수 없습니다.그러나 여기서 우리는 inner 함수를 만들었습니다. inner 함수는 변수one에 접근할 수 있습니다.전역 변수 outer를 inner를 인용했기 때문에 outer를 세 번 호출하면 점차적으로 증가하는 결과가 나온다

좋은 웹페이지 즐겨찾기