prototype.js에서 Function.prototype.bind 방법 얕은 해석

1806 단어 prototype
prototype.js의 Function.prototype.bind 메서드:
Function.prototype.bind = function() {

    var __method = this;

    var args = Array.prototype.slice.call(arguments);

    var object=args.shift();

    return function() {

        return __method.apply(object,

             args.concat(Array.prototype.slice.call(arguments)));

    }

}

모든function 대상에 새로운prototype (원형) 방법bind를 추가합니다.
  • bind 메서드가 호출된 객체를 ___에 저장method 변수 안에..
  • bind 방법을 호출할 때 전달된 매개 변수를 수조로 변환하여 변수args에 저장..
  • args 수조의 첫 번째 [0] 요소를 추출하여 변수object에 저장..
  • 함수 반환..

  • 이 반환된 함수는 다시 호출될 때 다음과 같이 수행됩니다.
  • apply 방법을 사용하여bind 방법을 호출하는 함수 안에 있는this 바늘을object로 바꿉니다
  • 이 익명 함수에 전달된 매개 변수를 수조로 변환하여args 수조와 조합하여 새로운 수조를 형성하여 __에게 전달method 방법..

  • 예:
    function o(){
    
        this.num = 1;
    
        var fn = function(arg){alert(this.num+arg)}.bind(this,2);
    
        fn(); //alert(3)
    
    }
    
    new o()

    좋은 웹페이지 즐겨찾기