찾다

 >  Q&A  >  본문

javascript - js 확장 프로토타입 메소드의 포인팅 문제

JavaScript Ninja Secrets 책에는 프로토타입 라이브러리와 함수 바인딩 코드의 예가 있습니다.

으아악

기능을 확인하기 위해 중단점을 사용합니다bind里面的fn指向myFunction这个函数 这个我不太理解 我的理解是只要用Function.prototype 这个原型扩展的方法 此方法里面开始声明的变量var fn=this;fn的指向就指向使用这个方法的函数 就像本例中的myFunction.bind(myObject);调用bin方法,fn指向myFunction이 기능을 이해하는 것이 올바른지 모르겠습니다

漂亮男人漂亮男人2779일 전788

모든 응답(1)나는 대답할 것이다

  • 迷茫

    迷茫2017-05-19 10:38:17

    사실 질문을 잘 이해하지 못해서 아이디어를 가지고 코드를 살펴보겠습니다

    myFunction.bind(myObject)는 프로토타입의 바인드 함수에 들어갑니다

    1. myFunction을 fn에 할당하고, 매개변수를 배열 인수로 변환하고, 첫 번째 매개변수를 삭제하고 객체에 할당합니다.

    2. 함수를 반환한 다음 클로저에 대해 생각해 보면 이해하게 될 것입니다. 이 함수로 수행되는 작업은 간단히 myFunction.apply(myObject,[...여기에 다른 매개변수가 있습니다])

    3. 로 이해될 수 있습니다.

    a함수()

    myFunction.apply(myObject,[...여기에는 매개변수가 없습니다])
    그 다음 myFunction 내부로 들어갑니다. Apply 간의 관계로 인해 이것이 myObject이고 작업은 myObject==myObject
    Return입니다. 진짜

    회신하다
    0
  • 취소회신하다