js学习笔记 -- callee函数与函数声明小记

      之前曾经温习过arguments函数,主要用途是保存函数参数,有个对象名叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数。

  比如一个简单的阶乘函数,如下:

    function  factorial(num){

      if(num<=1){

        return 1;

      }else{

        return num*factorial(num-1);

      }

    }   此函数可以实现一个阶乘,但是跟函数名紧密相连。如果用callee函数就没有这种束缚啦~~~

    

 function  factorial(num){

      if(num<=1){

        return 1;

      }else{

        return num*callee(num-1);

      }

}

关于函数,函数名实际上是一个指向函数指针的对象,不会与某个函数绑定,通常用函数声明定义,如下:

  function sum(num1,num2){

    return num1+num2;

}

使用函数表达式定义函数如下,这与上面的基本一样。

var sum= function(num1,num2){

  return num1+num2;

}

 

函数名仅仅是指向函数的指针,因此与包含其他对象的指针变量没什么不同,例如:

function sum(num1,num2){

    return num1+num2;

}

alert(sum(10,10))//20

var anothersum=sum;//如果访问函数指针 而不执行函数就去掉圆括号;

alert(anothersum(10,10))//20

sum=null;

alert(anothersum(10,10))//20

!! 如果访问函数指针 而不执行函数就去掉圆括号;

posted @ 2014-08-24 21:24  echo_yaonie  阅读(85)  评论(0)    收藏  举报