码迷,mamicode.com
首页 > 编程语言 > 详细

javaScript闭包

时间:2016-11-21 14:36:47      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:lob   作用域链   javascrip   变量   规则   rip   java   回收   script   

闭包:

  这个术语非常古老,是指函数变量可以被隐藏于作用域链之内,因此看起来是函数将变量“包裹”了起来。

  

作用域链:

    我们将作用域链描述为一个对象列表,不是绑定的栈。每次调用JavaScript函数的时候,都会为之创建一个新的对象用来保存局部变量,把这个对象添加至作用域链中,当函数返回的时候,就从作用域链中将这个绑定变量的对象删除。

    如果不存在嵌套的函数,也没有其他引用指向这个绑定对象,它就会被当做垃圾回收掉。

    如果定义了嵌套的函数,每个嵌套的函数都各自对应一个作用于连,并且这个作用于连指向一个变量绑定对象,但如果这些 (未完成)

  

  了解闭包首先要了解嵌套函数的词法作用域规则。

  var scope = "global scope"; //全局变量

  function checkscope(){

    var scope = "local scope";  //局部变量

    function f(){

    return scope; //在作用域中返回这个值

  }

    return scope;  //=>" local scope"

  }

  checkscope();      //==> "local scope"

javaScript闭包

标签:lob   作用域链   javascrip   变量   规则   rip   java   回收   script   

原文地址:http://www.cnblogs.com/luokai/p/6085182.html

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