javaScript回顾--闭包

     闭包在js中经常会被使用到,在面试中也是常被问到,然而在日常编码中往往会忽略闭包的概念。

     1:闭包的结构

            闭包表现为作用域嵌套的一种表现(形成一个作用域链,具体可以看这个:浅析作用域链–JS基础核心之一),最终形成一个作用域链

     2:闭包的作用

           由于闭包会形成作用域链,所以闭包的最大特点就是作用域链内层的函数可以访问其外层作用域的变量(注:也是由于该特性会使得被内部作用域或者说函数引用的变量不会被释放点,严重的可能会导致内存溢出)。

       一个简单的闭包

function test() {
    var name = "张三";

    return function sayName() {
        console.log(name);
    }
}
调用:test()();
执行结果,会在控制台打印出:张三。
执行过程:test()执行返回了一个匿名函数,接着在执行该函数。
  3:闭包的使用场景
      (1):使用闭包可以在JavaScript中模拟块级作用域;
(2):闭包可以用于在对象中创建私有变量 。具体请参考: JavaScript闭包与私有变量
更多闭包说明,这篇文章讲得很详细,大家可以去看看。
相关知识(里面的代码基本都和闭包相关)
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值