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
!! 如果访问函数指针 而不执行函数就去掉圆括号;

浙公网安备 33010602011771号