Function_basic

1.没有重载

  在JS中,函数名相当于一个指针,指向函数对象的地址,当声明两个同名函数时,后声明的函数会覆盖先声明的函数。

2.函数的内部属性

  1.arguments对象

    类数组对象,包含传入函数的所有参数。

    callee:是一个指针,指向拥有这个arguments对象的函数。

    

<!--经典的递归函数(低耦合)-->
function factorial(num){
    if(num<=1)
     {
         return 1;
     }
    else{
        return num*arguments.callee(num-1);
    }      
}   

  2.this

  指向调用当前函数的对象

  3.caller  

  保存调用当前函数的函数的引用,如果在全局作用域内调用此函数,会返回null

3.函数的方法  (apply/call-设置函数内this对象的值)

  应用某个对象的一个方法,使用另一个对象替换当前对象

  apply(thisObj [, argArray])  /  call(thisObj [,arg1[,arg2...] ])

    如果argArray不是一个有效数组或者不是argument对象,会报TypeError错误

    如果没有指定thisObj,就会将Global对象当成thisObj

window.color="red";
var o={color="blue"};
function sayColor(){
    alert(this.color);
}
sayColor();        //red
sayColor.call(this);    //red
sayColor.call(o);        //blue    
原文地址:https://www.cnblogs.com/controlms/p/7728977.html