js对函数参数的封装

对函数参数的封装

一个原始函数有n个参数,用wrap对函数进行封装,生成一个新的函数,当给它传入参数数量为n的时候,将执行原始函数,否则不执行

//函数封装
function wrap(func){
    let len=func.length,cache=[]
    return function () {
        cache.push.apply(cache,arguments)
        if(cache.length<len){
            return arguments.callee
        }else{
            return func.apply(null,cache)
        }
    }
}

var func=function (a,b,c) {
    return a+b+c
}

var n=wrap(func)
console.log(n(1)(2)(2))

  

原文地址:https://www.cnblogs.com/caoke/p/9951023.html

时间: 2024-10-10 10:01:02

js对函数参数的封装的相关文章

JS 不定函数参数argument的用法

本篇文章只要是对js的隐含参数(arguments,callee,caller)使用方法进行了介绍. arguments arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n]参数function:当前正在执行的 Function 对象的名字. n :要传递给 Function 对象的从0开始的参数值索引.说明Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象.Arguments是一个类似数组但不是数组的对象

js 的函数参数的默认值问题

js函数参数设置默认值 php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ($a=1,$b=2){ return $a+$b; } echo simue(); //输出3 echo simue(10); //输出12 echo simue(10,20); //输出30 但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象. js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到

php与js中函数参数的默认值设置

php函数参数默认值设置: <?phpfunction test($val=3){   echo $val."<br/>";}test(11);test();?> javascript函数参数默认值设置function test(){alert("test函数");} function test2(val,func){ val=val||"";//利用js中的或操作,第一个参数值为false(为空)时返回第二个参数的值.第

js设置函数参数默认值的3种方法

js默认是不支持funtion f($a=a){}这种写法的,如果想设置函数参数的默认值,可以参考如下三种方法: 第一种方法: 使用arguments,函数所有的参数都会存入arguments数组离去,所以我们可以从中获取相应的参数然后赋值 function example(a,b){ var a = arguments[0] ? arguments[0] : 1;//设置参数a的默认值为1 var b = arguments[1] ? arguments[1] : 2;//设置参数b的默认值为

js中函数参数基本类型和引用类型的区别

高级程序设计中说明,所有函数的参数都是按值传递的. 基本类型 向参数传递基本类型的值时,被传递的值会被复制给对应的命名参数 function addTen(num){ num=+10; return num; } var count=20; var result=addTen(count); alert(count);//20 在函数内部,num的值被加上10,但不影响外部count变量的值 引用类型 在向参数传递引用类型的值时,把这个值在内存中的地址复制给对应的局部变量,如果这个局部变量没有重

react 函数参数的传递

js中函数参数的传递形式较为简单 function show(s){ console.log(s); } show(''hello);  就会输出hello. 在react JSX中函数参数的传递需要用到 bind 这里有个例子可以作为参考 http://www.jianshu.com/p/d745514e547b 需要注意的是得先定义this然后再使用,直接使用this会报错,函数为定义 需要通过bind方法来绑定参数,第一个参数指向this,第二个参数开始才是事件函数接收到的参数 下面这个例

JS中的函数(二):函数参数(你可能不知道的参数传递)

前言: 函数分为有参有返回值,有参无返回值,无参无返回值,无参有返回值:那么对于无参数的函数你想使用函数的调用怎么办呢?如果你想封装一个代码,实现多种功能,但是形参大于实参或者实参大于形参又该如何?本文就发生函数调用过程中,值传递,参数的不对等处理原则等关于参数的一些相关操作进行阐述. 1.实参数大于形参数: function say(name,message){ console.log('Hello' + name + message); } say('World!','ByeBye!','W

js中函数传递参数,究竟是值传递还是引用传递?

记住真理: js函数传递参数,不管是简单数据类型,还是引用数据类型,都是值传递!! 下面是js红包书里面的例子: function setName(obj) { obj.name = "Nicholas"; obj = new Object(); obj.name = "Greg"; } var person = new Object(); setName(person); alert(person.name); // "Nicholas" 肯定

js 函数参数个数

js中的函数参数个数不是确定区别函数的,也就是说你定义一个函数A(x,y)    当你使用这个函数时,你可以A();A(1);A(1,2);A(1,2,3);都是调用这个A(x,y)函数. 例子: <html> <head> <title> 函数调用测试,参数个数和函数声明不一样多 </title> <script language="JavaScript"> function needTwoPara(p1,p2){ var