码迷,mamicode.com
首页 > 其他好文 > 详细

高程7-函数 表达式

时间:2017-11-15 00:29:37      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:name   tor   闭包   error   factor   margin   call   递归   type   

1.定义函数的两种方法:

1.函数声明
function functionName(arg0,arg1){
}
特点:函数预解析,代码执行的时候,可以先调用后执行,因为预解析;

a()

function a() {

console.log("s")

};



2.函数表达式
var functionName=function(arg0,arg1){
}
特点:创建的函数是匿名函数,函数名子是空字符串;与定义变量一样,

a()
var a=function (){
console.log("123");
}           // Uncaught TypeError: a is not a function at



不要在if代码体中定义函数

2. 递归

function factorial(num){
          if(num<=1){
            return 1;
        }else{
           return num*factorial(num-1)       //也可以换成 return num*argument.callee(num-1);
} }

这里argument.callee(num-1)指的是正在执行的函数,使用argument.callee代替函数名,可以确保无论怎么样调用的函数都不会出问题,因此,在编写递归函数时,使用argument.callee比函数名可靠;

严格模式:
var fac=(function f(num){
if (num<=1){
return
}else{
return num* f(num-1)
}
)
严格模式,不能通过脚本访问argument.callee,访问这个属性会导致错误,不过,可以使用命名函数表达式来、

3.闭包

 

高程7-函数 表达式

标签:name   tor   闭包   error   factor   margin   call   递归   type   

原文地址:http://www.cnblogs.com/liangfc/p/7835315.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!