JS this, call 과 apply 및 리 셋 함수

1777 단어 apply
this
 
이 인용 은 하나의 대상 을 인용 합 니 다. 대상 이 다 르 거나 함수 호출 방식 이 다 르 기 때문에 this 인용 은 코드 의 문맥 에 따라 인용 대상 의 특성 을 자동 으로 바 꿉 니 다.
인용 규칙
1. 가장 바깥쪽 코드 에서 this 는 전체 대상 (windows) 을 참조 합 니 다.
2, 함수 내 에서 this 인용 은 함수 호출 방식 에 따라 다 릅 니 다.
1) 구조 함수 에서 this 참조 대상 은 구조 함수 생 성 대상 이다.
2) 방법 호출, this 는 수용 자 대상 을 참조 합 니 다.
3) 애플 과 콜 호출, 인용 대상 은 두 함수 의 매개 변수 로 지정
4) 다른 방식 으로 호출, 전역 대상 참조
 
call 과 apply 는 Function 대상 의 방법 입 니 다.
방법의 정의
call 방법: 문법: call ([thisObj [, arg 1 [, arg 2 [,   [,.argN]]]]]) 정의: 한 대상 을 호출 하 는 방법 으로 현재 대상 을 다른 대상 으로 교체 합 니 다. 설명: 콜 방법 은 다른 대상 을 대체 하여 하나의 방법 을 호출 할 수 있다.call 방법 은 함수 의 대상 컨 텍스트 를 초기 컨 텍스트 에서 thisObj 가 지정 한 새로운 대상 으로 변경 할 수 있 습 니 다. thisObj 인 자 를 제공 하지 않 으 면 Global 대상 은 thisObj 로 사 용 됩 니 다. apply 방법: 문법: apply ([this Obj [, argArray]]]) 정의: 대상 의 한 방법 을 사용 하여 현재 대상 을 다른 대상 으로 교체 합 니 다. 설명: argArray 가 유효한 배열 이 아니 거나 arguments 대상 이 아니라면 TypeError 를 초래 할 수 있 습 니 다. argArray 와 thisObj 의 매개 변 수 를 제공 하지 않 으 면 Global 대상 은 thisObj 로 사용 되 고 매개 변 수 를 전달 할 수 없습니다.
 
쉽게 말 하면 다음 과 같다.
func. call (func 1, var 1, var 2, var 3) 에 대응 하 는 apply 표기 법 은: func. application (func 1, [var 1, var 2, var 3]) 입 니 다.
반전 함수 (callback)
 
 function  a(callback){
      alert('a');
      callback();//    callback(),  callback.apply(this)

   }
   function  b(){
       alert('b');
   }
//
a(b);

function  a(callback){
      alert('a');
      callback.call(this,'d');//    callback(),  callback.apply(this)
}
//

c(function(e){ alert(e); });




좋은 웹페이지 즐겨찾기