首页 > 代码库 > javascript之函数篇

javascript之函数篇

1、我们都知道定义函数有两种方式:函数声明和函数表达式(其实还有Function构造函数方式,不推荐使用)

如:

声明方式:function sum(num1,num2){returm num1+num2;}  //重要特征:函数声明提升

表达式方式:var sum=function(num1,num2){return num1+num2;} ;   // 注意末尾有一个分号,就像声明其它变量一样

构造函数方式(不推荐,因为影响性能,但可帮助理解函数就是对象) var sum=new Function(num1,num2,"return num1+num2;");

 

2、在把函数当成值来使用的情况下(如作为另一个函数的参数或返回值),都可以使用匿名函数,但这并不是匿名函数的唯一用途。

 

3、递归:

最普通的方式:

function m(n){
if(n<=1){return 1;}
else{return n*m(n-1);}
}

//可能会报错,如  var o=m; m=null;o(4);  就会报错。

使用 arguments.callee

function m(n){
if(n<=1){return 1;}
else{return n*arguments.callee(n-1);}
}

点评:在严格模式下不允许通过脚本访问arguments.callee

最后一种:

var f=(function m(n){
if(n<=1){return 1;}
else{return n*arguments.callee(n-1);}
});

点评:就不会出现上面的问题啦。

 

4、闭包

 

javascript之函数篇