红宝书 第7章整理——函数+闭包

1、函数的两中定义方法

① 函数声明

语法:

function name (arg[0],arg[1],arg[2]....){

    //函数内容

}

关键点:

function关键字

函数名name!!!

特征:

函数声明提升——在执行代码之前会先读取每一个函数的声明,所以这种方法定义的函数,调用可以在定义之前


② 函数表达式(匿名函数式)

最常见的语法:

var name = function (arg[0],arg[1],arg[2]....) {

     //函数内容

}

理解:创建一个函数并把它赋值给变量name,但是注意function后面没有名称,name不是函数名

③ 二者区别

函数声明

会把函数名与函数体进行绑定,所以对这种情况来说,若代码中重复定义了这个函数,js会尝试修复这个错误,不同浏览器的理解方式会有不同,所以尽量不要这样做。

此外就是之前提到的,会在代码执行前预先读函数声明。

函数表达式

相当于把函数当成值来用,所以var定义的变量重名也无所谓。

2、闭包

① 闭包定义

官方定义:有权访问另一个函数作用域中的变量的函数

常见的创建方式:在一个函数内部创建另一个函数。

注意,创建的新函数可以用函数声明,也可以用匿名函数,只要创建了就是个闭包。

理解

function A () {
    var a  =0;   //定义A的变量
    
     function B(){
       alert (a);      // B算是A的局部,所以可以调用A 的局部变量
}
    
}


alert(a);     //错误! a算是function A 的局部变量,外部访问不到的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值