javaScript回顾--闭包

来源:互联网 发布:spss软件中文版 编辑:程序博客网 时间:2024/06/02 03:39

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

     1:闭包的结构

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

     2:闭包的作用

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

       一个简单的闭包

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

0 0
原创粉丝点击