zoukankan      html  css  js  c++  java
  • JavaScript 中的不完全函数

    function array(a,n){
                    return Array.prototype.slice.call(a,n || 0);
                }
                //the arguments to this function are passed on the left
                function particalLeft(f){
                    var args = arguments;
                    return function(){
                        var a = array(args,1);
                        a = a.concat(array(arguments));
                        return f.apply(this,a);
                    }
                }
                //the arguments to this function are passed on the right
                function particalRight(f){
                    var args = arguments;
                    return function(){
                        var a = array(arguments);
                        a = a.concat(array(args, 1));
                        return f.apply(this, a);
                    }
                }
                //The arguments to this function serve as a templete, Undefined values in the argument list are filled in with values from the inner set
                function partical(f){
                    var args = arguments;
                    return function(){
                        var a = array(arguments);
                        var length = a.length;
                        var j = 0;
                        for(var i = 0; i< length; i++){
                            if(a[i] === undefined){
                                a[i] = arguments[j++];
                            }
                        }
                        a = a.concat(array(arguments,j));
                        return f.apply(this,a);
                    }
                }
                function f(x,y,z){
                    return x*(y-z);
                }
                var result1 = particalLeft(f,2,3)(4);
                var result2 = particalRight(f,2)(3,4);
                var result3 = partical(f,undefined)(2,3,4);
                console.log(result1);
                console.log(result2);
                console.log(result3);
  • 相关阅读:
    【English】20190522
    06_Intent和IntentFilter
    05_Content Provider
    04_ Broadcast Receiver
    03_Service的绑定
    02_启动和销毁Service
    01_Activity生命周期及传递数据
    Android对应版本号
    如何在word中插入代码
    项目经验总结
  • 原文地址:https://www.cnblogs.com/fanhc/p/3255020.html
Copyright © 2011-2022 走看看