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

JavaScript作用域链特性----闭包

时间:2020-04-17 16:02:56      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:局部变量   内存   特色   script   处理   ace   释放   性能   closure   

首先:

  了解闭包,必须要清楚  JavaScript 的特性 -----> 作用域 、作用域链、执行上下文  。

  闭包的构成。

  闭包性能考量。 

 

 

官方对于闭包的定义:

闭包 是指  有权访问另外一个函数作用域中的变量的函数 

关键在于下面两点:

  • 是一个函数
  • 能访问另外一个函数作用域中的变量

 

另外的说法:

  闭包可以延长(函数作用域下)变量的生命周期。   -------   不可释放的引用    

 

  JS闭包是JavaScript函数对JS特性作用域的一种应用!!!   --------让其存在一种引用关系,使之不被垃圾回收机制回收。

  延伸??

  因为函数内部定义的变量是局部变量,不能被外部(作用域链---外到内)的变量所访问,而函数内部的变量却可以访问函数外部的变量(作用域链---内到外)。

  通过函数return   ---------    避免全局变量的污染,保护私密数据。

 

闭包性能考量:

  闭包对于浏览器---处理速度以及内存消耗方面对脚本性能具有负面影响!!!

 

 

补充:

  作用域:

  作用域链:

  词法环境:

  

 

------执行环境栈    活动对象AO...

 

  总结分析:

  闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

JavaScript作用域链特性----闭包

标签:局部变量   内存   特色   script   处理   ace   释放   性能   closure   

原文地址:https://www.cnblogs.com/swt-axios/p/12720115.html

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