js 커 리 화

3960 단어 JAVASCRIPT심득
오늘 실수 로 책 에서 또 보 았 다.여기 에는 콜 리 화 함수 가 무엇 인지 소개 하지 않 는 다.모 르 는 것 은 스스로 구 글 하 세 요.
그러나 저 는 js 디자인 모델 이라는 책 에서 코 리 화 코드 세 션 을 취하 고 상세 한 주석 을 달 겠 습 니 다.만약 구 글 코 리 화가 된 후에 도 모 르 는 친구 라면, 이 주석 을 읽 을 수 있 습 니 다.
물론, 나 는 네가 먼저 한 번 실행 한 후에 주석 을 보 러 가 는 것 을 추천 한다.
        var currying = function(fn) {
            //         
            var args = [];
            return function() {
                //          0,           ,        ,  /     
                if (arguments.length === 0) {
                    // fn         ,              
                    return fn.apply(this, args);

                //       ,            ,    /    
                } else {
                    //arguments   google,             。
                    // arguments     push args
                    //           ,   args 
                    [].push.apply(args, arguments);
                    //        return  
                    return arguments.callee;
                }
            }
        };
        var cost = (function() {
            //     , money    
            var money = 0;
            //    currying(fn)  fn
            return function() {
                //arguments    currying  args
                //          ,             
                for (var i = 0, l = arguments.length; i < l; i++) {
                    money += arguments[i];
                }
                return money;
            }
        })();
        var cost = currying(cost); //    currying   
        cost(100); //      
        cost(200); //      
        cost(300); //      
        cost(200); //      
        cost(200); //      
        cost(50); //      
        cost(100); //      
        alert(cost()); //      :600

코드 에 주석 은 본 블 로그 에서 나 왔 습 니 다.http://blog.csdn.net/jiestyle21잘못된 부분 을 이해 하면 지적 해 주세요.

좋은 웹페이지 즐겨찾기