1. 함 수 는 기본

4230 단어
함수 성명
  • function 키워드
  • 선택 가능 한 이름 (유효한 Javascript 식별 자)
  • 괄호 내부 에 쉼표 로 구 분 된 매개 변수 목록 (유효한 자바 script 식별 자, 목록 이 비어 있 음)
  • 함수 체, 대괄호 안에 포 함 된 일련의 자 바스 크 립 트 문장 (함수 체 는 비어 있 을 수 있 음)
  • //             
    function a(){}
    console.log(typeof window.a==="function"); // ture  window               
    console.log(a.name==="a"); // true          name  ,           
    
    //              b
    var b = function (){};
    console.log(typeof window.b==="function"); // ture 
    console.log(b.name==="b"); // true                name      undefined
    
    //            window       
    window.c=function(){};
    console.log(typeof window.c==="function"); // true
    console.log(c.name===""); // true                name   undefined
    
    //         outer  ,      inner  
    function outer(){
       console.log(typeof inner==="function"); // true   inner         inner
       function inner(){}
       console.log(typeof inner==="function"); // true   inner         inner
       console.log(typeof window.inner==="undefined"); // true  inner            
    }
    
    //          window       
    window.e=function d(){};
    console.log(e.name==="d"); // true             e   ,   name             
    

    역할 영역 과 함수
    함 수 는 그 역할 영역 범위 내 에서 미리 인 용 될 수 있 지만 변 수 는 안 됩 니 다.
    함수 호출
  • 함수 로 호출
  • 대상 으로 대상 에서 호출
  • 구조 기로 호출 하여 새로운 대상 을 만 듭 니 다
  • apply () 또는 call () 방법 으로 호출
  • //           
    function f(a,b,c){}
    f(1); //                  ,1     a, b、c     undefined
    f(1,2,3,4,5); //                  ,1,2,3       a,b,c, 4,5         
    

    모든 함수 호출 은 두 개의 암시 적 인 파 라 메 터 를 전달 합 니 다: arguments 와 this.arguments 매개 변 수 는 함수 에 전 달 된 모든 매개 변수의 집합 으로 length 속성 을 가지 고 있 으 며 for 를 사용 하여 옮 겨 다 닐 수 있 지만 진정한 자바 script 배열 이 아니 라 배열 을 사용 할 수 없 는 방법 으로 배열 과 유사 한 구조 로 배열 의 일부 특성 만 가지 고 있 습 니 다.이 매개 변 수 는 이 함수 호출 과 암시 적 으로 연 결 된 대상 을 참조 하여 함수 컨 텍스트 라 고 합 니 다.this 의 지향 은 함수 의 호출 방식 에 의존 합 니 다. 호출 된 함수 가 같 더 라 도 호출 방식 이 다 르 면 this 의 지향 도 다 릅 니 다.
    함수 "함수 로" 호출
    함수 가 '함수 로' 호출 되 었 을 때 () 연산 자 를 사용 한 표현 식 을 표시 하고 함 수 를 대상 으로 하 는 속성 이 없습니다.예 를 들 면:
    function a(){  return this  }
    a();
    console.log(a()===window); //  true
    
    var b=function (){  return this  };
    b();
    console.log(a()===window); //  true
    //        ,            window  , this    window  
    

    함수 "방법 으로" 호출
    함수 가 '방법 으로' 호출 될 때 함수 가 대상 에 게 할당 되 는 속성 을 나타 내 고 이 함수 의 속성 을 참조 하여 호출 합 니 다. 예 를 들 어:
    var a={};
    a.b=function (){ return this };
    a.b(); //          ,           
    console.log(a.b()===a); // ture
    

    사실 함수 '함수 로 서' 의 호출 방식 은 '방법 으로 서' 호출 방식 의 특수 한 상황 이다.'함수 로 서' 호출 시 함 수 는 사실 window 대상 에 연결 되 어 있 으 며, window 대상 은 현재 함수 의 문맥 입 니 다.window 대상 호출 방식 을 생략 하고 편지 숫자 면 을 직접 사용 하여 호출 합 니 다.
    대상 을 대상 으로 하 는 기본 개념 중 하 나 는 우리 가 임의의 방법 에서 this 의 지향 을 통 해 이 방법 이 속 한 대상 을 인용 할 수 있다 는 것 이다.
    함수 가 구조 기로 호출 되다
    function A(){ this.b=function(){ return this }}
    var c=new A(); //         new                
    console.log(c.b()===c); // true            this      。
    

    구조 기 호출 시 다음 과 같은 행위 가 발생 합 니 다.
  • 새 빈 대상 을 만 듭 니 다.
  • 새로운 대상 의 this 매개 변 수 를 구조 기 함수 에 전달 하여 새로운 대상 의 함수 문맥 이 구조 기의 함수 문맥 이 됩 니 다.
  • 표 시 된 반환 값 이 없 으 면 새 대상 은 구조 기의 반환 값 으로 되 돌아 갑 니 다 (이러한 의 도 를 방해 하 는 것 은 구조 기 에 적합 하지 않 습 니 다).

  • 일반적인 함수 와 방법 은 소문 자로 시작 하고 구조 기 함 수 는 대문자 로 시작한다.
    apply () 와 call () 방법 으로 호출 합 니 다.
    Javascript 에서 함수 도 대상 처럼 방법 과 속성 을 가 질 수 있 고 함수 마다 apply () 와 call () 방법 이 있 습 니 다.apply () 호출 함 수 를 통 해 두 개의 매개 변 수 를 입력 해 야 합 니 다. 하 나 는 함수 컨 텍스트 의 대상 이 고 다른 하 나 는 함수 매개 변수 로 구 성 된 배열 입 니 다.call () 방법 은 이와 유사 합 니 다. 유일 하 게 다른 것 은 call () 방법 이 함수 에 들 어 오 는 것 은 매개 변수 목록 입 니 다. 모든 매개 변 수 를 하나의 배열 로 들 어 오 는 것 이 아 닙 니 다.
    function x(a,b){
        this.y=a+b;
    }
    var a={};
    var b={};
    x.apply(a,[1,2]);
    x.call(b,1,2);
    console.log(a.y); // 3    x    this    a  
    console.log(b.y); // 3    x    this    b  
    

    자 바스 크 립 트 는 함수 식 프로 그래 밍 언어 로 함수 식 프로그램의 구성 요소 블록 이지 명령 식 문장 이 아니다.
    //        
    function (list){
       for(var i=0;i

    좋은 웹페이지 즐겨찾기