JavaScript 기초 지식 제2 편 Function

Function
 
1. function 도 대상
 
JavaScript 에서 function 도 대상 이 고 대상 이 할 수 있 는 조작 은 function 이 모두 가능 합 니 다. JavaScript 에서 다음 과 같은 두 가지 문법 은 기본적으로 같 습 니 다.
 
function foo() {} //     
var foo = function() {}; // JavaScript  function     

 두 번 째 표기 법 은 자 바스 크 립 트 에서 완전히 합 법 적 이 며, function 이 대상 이라는 느낌 을 알 수 있 습 니까?말씀 드 리 지만, 이렇게 쓰 는 것 도 합 법 적 입 니 다.
 
function User() {} // User      
User.clone = function() {} //         

 그 중에서 User 의 이니셜 대 자 는 구조 함수 의 관례 적 인 표기 법 으로 구조 함 수 는 'JavaScript 대상 (object)' 이라는 글 에서 소개 된다.
 
2. function 역할 영역 과 폐쇄
 
자바 스 크 립 트 는 function 을 역할 영역 으로 합 니 다. 그러면 두 함수 가 끼 워 지면 자바 스 크 립 트 의 패 킷 (closure) 을 구성 합 니 다.예 를 들 면:
function foo() {
    var i = 2;
    function bar() {
        alert(i); //            。
    }
}

 패키지 (closure) 의 완전한 개념 은 비교적 복잡 하 다. 자바 스 크 립 트 에서 하위 함수 가 부모 함수 의 변 수 를 호출 할 수 있다 고 간단하게 이해 하면 된다.
 
3. 익명 함수
 
function 성명 의 함수 name 은 선택 할 수 있 습 니 다. 함수 name 을 쓰 지 않 을 때 익명 함수 입 니 다. 익명 함 수 는 name 이 없 기 때문에 한 번 만 사용 하 는 경우 에 적 용 됩 니 다. 예 를 들 어:
var arr = [ 2, 1, 3 ];
arr.sort(function(obj1, obj2) { 
    return obj2 - obj1;
});//arr.sort(f)                 function

 sort 를 이용 하여 익명 함 수 를 매개 변수 로 하여 배열 의 정렬 작업 을 진행 합 니 다.
 
 4. 함수 리 셋
 
JavaScript 에는 함수 가 다시 불 러 오지 않 습 니 다. 다른 언어 에서 다시 불 러 오 는 쓰기 (예 를 들 어 자바) 에 따라 변 수 는 마지막 성명 의 함 수 를 가리 키 며 다시 불 러 오지 않 습 니 다. 예 를 들 어:
 
function foo() {
    alert('first func');
}

function foo(name) {
    alert('second func ' + name);
}

foo(); // alert('second func undefined');
foo('bar'); // alert('second func bar');

 
 JavaScript 에 서 는 함수 리 셋 에 대한 원생 지원 이 없 지만, 우 리 는 함수 리 셋 기능 을 실현 하기 위해 함 수 를 스스로 쓰기 쉽다.함수 재 부팅 은 두 가지 일 을 해 야 합 니 다. 매개 변수 유형 을 확인 하고 매개 변수 수량 을 확인 해 야 합 니 다.
 
인자 형식 을 type of 를 사용 하거나 jQuery. type () 을 사용 할 수 있 는 지 확인 합 니 다. 예 를 들 어:
function foo( arg ) {
    if( typeof arg == 'number' ) {
        return 2 + arg;
    } 
    if( typeof arg == 'string' ) {
        return 'this is a string: '+ arg;
    }
}

alert( foo( 1 ) ); //3
alert( foo( 'bar' ) ) //this is a string: bar

 
매개 변수 형식 을 확인 하려 면 function 의 arguments 속성 을 사용 해 야 합 니 다.arguments 는 클래스 배열 로 함 수 를 호출 할 때 들 어 오 는 인 자 를 포함 하지만 배열 의 pop (), push () 등 동작 이 없습니다.예 를 들 면:
function addAll() {
    var sum = 0;
    for (var i = 0; i < arguments.length; i++ ) {
        sum += arguments[i];
    }
    return sum;
}

addAll(1, 2, 3, 4); //10

 라 이브 러 리 코드 를 작성 할 때 여러 가지 상황 을 고려 해 야 하고 매개 변 수 를 검사 해 야 할 수도 있 습 니 다.
 
소결: 본 고 는 주로 자바 스 크 립 트 의 function 특성 을 소개 합 니 다. function 은 대상, 폐쇄, 익명 함수, 그리고 자바 스 크 립 트 에서 함수 재 부팅 을 어떻게 실현 하 는 지 소개 합 니 다.
 
작은 작업: jQuery. type () 함수 의 소스 코드 를 연구 해 보 세 요.못 알 아 보 는 부분 이 있 으 면 lifesinger github 를 참고 하 세 요.

좋은 웹페이지 즐겨찾기