函数的参数

2018-04-02  本文已影响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)
上一篇 下一篇

猜你喜欢

热点阅读