JavaScript 의 apply, call, bind

1399 단어
JavaScript 의 apply, call, bind
  • 모든 함수 에는 계승 이 아 닌 두 가지 방법 이 포함 되 어 있 습 니 다. apply (), call ().
  • 이 두 가지 방법의 용 도 는 모두 특정한 작용 역 에서 함 수 를 호출 하 는 것 이 실제 적 으로 함수 체 내의 this 대상 의 값 을 설정 하 는 것 과 같다.
  • apply () 방법 은 두 개의 인 자 를 받아들인다
  • - 개 는 그 중에서 함 수 를 실행 하 는 역할 영역, 즉 this
  • 입 니 다.
  • 다른 하 나 는 매개 변수 배열 이다.이 배열 은 Array 의 인 스 턴 스 일 수도 있 고 arguments 대상 일 수도 있 습 니 다
  • call () 방법 은 apply () 방법의 역할 과 같 고 차이 점 은 매개 변 수 를 받 아들 이 는 방법 만 다르다 는 것 이다.
  • call () 방법의 첫 번 째 매개 변 수 는 this 이 고 다른 매개 변 수 는 모두 함수 에 직접 전달 된다.콜 () 방법 을 사용 할 때 함수 에 전 달 된 매개 변 수 는 하나씩 열거 해 야 합 니 다
  • apply () 와 call () 방법의 진정한 용 도 는 함수 가 운행 하 는 역할 영역 을 확장 할 수 있 는 것 이 고 역할 영역 을 확장 하 는 가장 큰 장점 은 대상 이 방법 과 어떠한 결합 관계 도 가지 지 않 아 도 된다 는 것 이다
    window.color = 'red';
    var o = {
    color: 'blue'
    }
    function saycolor() {
        console.log(this.color);
    }
    
    saycolor() // red
    sayColor.call(this)  //red,        this   window || global
    saycolor.call(window)  //red
    saycolor.call(o)   //clue
    
  • .
  • ES5 에 서 는 bid () 방법 도 정의 했다.
  • bid () 방법 은 함수 의 인 스 턴 스 를 만 듭 니 다. 이 함수 인 스 턴 스 의 this 값 은 bid () 함수 에 전 달 된 값
  • 에 연 결 됩 니 다.
    window.color = 'red';
    var o = {
        color: 'blue'
    }
    
    function saycolor() {
        console.log(this.color);
    }
    
    var objectsaycolor = saycolor.bind(this)
    objectsaycolor();    //blue
    

    좋은 웹페이지 즐겨찾기