美文网首页
函数的参数

函数的参数

作者: 倾国倾城的小饼干 | 来源:发表于2018-04-02 16:32 被阅读0次

    认识两个参数

    arguments和this可以隐式地传递给函数,并且可以像其他的参数一样进行使用。
    ++arguments++
    是一个类数组结构。可以for循环进行遍历;通过用数组的方法;有一个length属性。
    例如: 将两个对象合并成一个对象

    function fn1(m){
        for(i=1;i<arguments.length;i++){
            for(var key in argumens[i]){
             m[key]=arguments[i][key]   
            }
        }
    }
    var a={name:'lili',age:'11'}
    var b={name:'mary',sex:'woman'}
    fn1(a,b)//此题中传入了参数m,可以看成传入了多个参数,但是m仅代表传入的第一个参数。
    

    对于其length属性arguements.length则是在函数调用的时候传入了多少个参数。而对于function m(name,age){}中m.length则代表传入了多少个参数。对于arguments如果在函数中传入了2个参数,但是调用的时候只传入了1个参数,则第二个参数保存为undefind的值。
    例如:

    function fn1(){
        console.log(arguments.length)
    }
    fn1(1,2,3)
    
    function fn2(num,sum){
        return num+sum;
    }
    alert(fn2.length)
    

    ++this++
    this依赖于函数的调用方式,即哪个对象调用了函数,this就代表哪个对象

    函数的重载

    ++重载的定义++
    函数的名称一样,可以输入不同的值而不被覆盖,或者可以根据不同的值调用不同的函数。
    js中虽然没有重载但是可以实现重载
    例如:

    function fn1(m){
        switch(arguments.length){
            case 0:return 0;
            case 1:retrun arguments[0];
            case 2:return arguments[0]+arguments[1];
        }
    }
    fn1(2,3)
    

    相关文章

      网友评论

          本文标题:函数的参数

          本文链接:https://www.haomeiwen.com/subject/omjxhftx.html