apply 와 call

2081 단어
소개 하 다.
프로 그래 밍 개발 경험 이 있 는 사람들 은 함수 가 작용 역 이라는 것 을 알 고 있 으 며, 자 바스 크 립 트 의 함수 도 마찬가지다.그러나 이 함수 의 역할 영역 을 변경 하려 면 가장 편리 한 방법 은 apply 와 call 방법 을 통 해
사용법
apply 와 call 은 기능 적 으로 같 지만 유일한 차이 점 은 파 라 메 터 를 제공 하 는 방식 입 니 다.
  • apply 는 매개 변수 목록 이 아 닌 매개 변수 배열 을 사용 합 니 다
    window.color = "red";
    var a = {
      color : "blue"
    };
    var x = function(){
      alert(this.color+"--"+arguments.length);
    }
    x();//red is 0
    x.apply(window);//red is 0
    x.apply(a,[1,2,3]);//blue is 3
    
  • call 사용 시 매개 변수 목록
    window.color = "red";
    var a = {
      color : "blue"
    };
    var x = function(){
      alert(this.color+" is "+arguments.length);
    }
    x();//red is 0
    x.call(window);//red is 0
    x.call(a,1,2,3);//blue is 3
    
  • 1. apply 문법
    fun.apply(thisArg[, argsArray])
    

    매개 변수
  • thisArg fun 함수 가 실 행 될 때 지정 한 this 값 은 반드시 이 함수 가 실 행 될 때 진정한 this 값 이 아니 라 이 함수 가 비 엄격 한 모드 에 있 으 면 this 또는 null 로 지 정 될 때 undefined 전역 대상 (브 라 우 저 에서 window 대상) 으로 지 정 됩 니 다.동시에 값 이 원시 값 (숫자, 문자열, 불 값) 인 은 이 원시 값 의 자동 포장 대상 을 가리킨다.
  • this 한 배열 또는 클래스 배열 대상 은 그 중의 배열 요 소 는 단독 매개 변수 로 argsArray 함수 에 전 달 됩 니 다.이 매개 변수의 값 fun 이나 {{jsxref ("Global Objects / undefined", "undefined")}} 은 매개 변 수 를 입력 할 필요 가 없다 는 뜻 입 니 다.ECMAScript 5 부터 클래스 배열 대상 을 사용 할 수 있 습 니 다.브 라 우 저 호환성 은 본문 아래쪽 내용 을 참조 하 시기 바 랍 니 다.

  • 2. call 문법
    fun.call(thisArg[, arg1[, arg2[, ...]]])
    

    매개 변수
  • null fun 함수 가 실 행 될 때 지정 한 thisArg 값 입 니 다.주의해 야 할 것 은 지정 한 this 값 이 반드시 이 함수 가 실 행 될 때의 진정한 this 값 은 아니 며, 이 함수 가 비 엄격 한 모드 에 있 으 면 thisnull 전역 대상 (브 라 우 저 에서 window 대상) 으로 지정 되 며, 동시에 값 은 원시 값 (숫자, 문자열, 불 값) undefined 으로 지정 된다 는 것 이다.이 원시 값 의 자동 포장 대상 을 가리 킬 것 입 니 다.
  • this 지정 한 매개 변수 목록 입 니 다.
  • 좋은 웹페이지 즐겨찾기