Function.prototype.bind 방법의 실현 원리

2995 단어 프런트 엔드
Function.prototype.bind = Function.prototype.bind || function(context) {
            var me = this;
            var args = Array.prototype.slice.call(arguments, 1);
            return function() {
                var innerArgs = Array.prototype.slice.call(arguments);
                var finalArgs = args.concat(innerArgs);
                return me.apply(context, finalArgs);
            }
        }
        //context this 
        //me 
        //finalArgs 

bind는 즉시 호출하는 그 방법의 실례가 아니기 때문에 하나의 방법의 실례가 bind를 호출할 때 하나의 방법을 되돌려주고 다시 호출하는 방법이 있을 때 실례적인 방법을 호출한다. 주요한 역할은 방법 내부의this지향을 바꾸는 것이다. 밑바닥은 apply방법에 따라 실현된다. bind를 호출할 때 들어오는 매개 변수와 나중에 호출할 때 들어오는 매개 변수를 하나의 수조에 통합시켜 apply에 전달해야 한다.bind를 호출하는 실례 대상을 저장하여 apply를 호출할 때 준비합니다

좋은 웹페이지 즐겨찾기