JavaScript Ninja Secrets 책에는 프로토타입 라이브러리와 함수 바인딩 코드의 예가 있습니다.
으아악기능을 확인하기 위해 중단점을 사용합니다bind
里面的fn指向myFunction
这个函数 这个我不太理解 我的理解是只要用Function.prototype
这个原型扩展的方法 此方法里面开始声明的变量var fn=this;
中fn
的指向就指向使用这个方法的函数 就像本例中的myFunction.bind(myObject);
调用bin
方法,fn
指向myFunction
이 기능을 이해하는 것이 올바른지 모르겠습니다
迷茫2017-05-19 10:38:17
사실 질문을 잘 이해하지 못해서 아이디어를 가지고 코드를 살펴보겠습니다
myFunction.bind(myObject)는 프로토타입의 바인드 함수에 들어갑니다
myFunction을 fn에 할당하고, 매개변수를 배열 인수로 변환하고, 첫 번째 매개변수를 삭제하고 객체에 할당합니다.
함수를 반환한 다음 클로저에 대해 생각해 보면 이해하게 될 것입니다. 이 함수로 수행되는 작업은 간단히 myFunction.apply(myObject,[...여기에 다른 매개변수가 있습니다])
a함수()
myFunction.apply(myObject,[...여기에는 매개변수가 없습니다])
그 다음 myFunction 내부로 들어갑니다. Apply 간의 관계로 인해 이것이 myObject이고 작업은 myObject==myObject
Return입니다. 진짜