JavaScript函数作用域链分析

 更新时间:2015年02月13日 11:06:04   作者:桂学成  
这篇文章主要介绍了JavaScript函数作用域链,实例分析了函数作用域链的原理与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例分析了JavaScript函数作用域链。分享给大家供大家参考。具体分析如下:

作用域链:

JavaScript的每个函数function都有自己的作用域,使用Active Object(简称AO)活动对象来保存,在相互嵌套的函数中形成了作用域链,如下图所示:

作用域链就是从里到外的AO链

变量的寻找:

函数fn3中使用的变量,如在fn3作用域内寻找不到,则往外层fn2作用域寻找,以此类推,直到全局对象window

代码演示如下:

var c = 5; 
function t1(){ 
  var d = 6; 
  function t2(){ 
    var e = 7; 
    var d = 3;
 //如果在这里声明的var d = 3,
 //那么函数就不在向外寻找变量d,输出的值为15 
    console.log(c+d+e); 
  } 
  t2(); 
} 
t1();

了解了JavaScript作用域链后,在函数里面使用频率较高的外部变量,最好先将外部变量保存为局部变量后,再进行操作,这样就大大减少通过作用域链查找变量的时间。

希望本文所述对大家的javascript程序设计有所帮助。

相关文章

  • Electron中实现大文件上传和断点续传功能

    Electron中实现大文件上传和断点续传功能

    Electron是开源的框架,可以使用h5来开发跨平台pc桌面应用,这样前端开发这可以开发桌面应用了。这篇文章主要介绍了Electron中实现大文件上传和断点续传功能,需要的朋友可以参考下
    2018-10-10
  • JS功能代码集锦

    JS功能代码集锦

    这篇文章主要介绍了JS功能代码集锦 的相关资料,需要的朋友可以参考下
    2016-05-05
  • javascript判断firebug是否开启的方法

    javascript判断firebug是否开启的方法

    这篇文章主要介绍了javascript判断firebug是否开启的方法,结合实例形式分析了javascript基于console控制台方法判断firebug开启状态的相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • js对象合并与数组合并综合应用举例

    js对象合并与数组合并综合应用举例

    这篇文章主要给大家介绍了关于js对象合并与数组合并综合应用举例的相关资料,本文将介绍常见的JS对象合并和数组合并方法,帮助读者更好地理解和运用这些方法,需要的朋友可以参考下
    2023-11-11
  • JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

    JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

    这篇文章主要介绍了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法,可实现有效检测用户密码等级的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 再次谈论Javascript中的this

    再次谈论Javascript中的this

    javascript中的this应用非常广泛,对js中this总是似是而非的感觉,今天小编豁然开朗,然后再次给大家谈论js中的this关键,感兴趣的朋友跟着小编一起看看吧
    2016-06-06
  • javascript for循环性能测试示例

    javascript for循环性能测试示例

    这篇文章主要介绍了javascript for循环性能测试,结合实例形式分析了javascript使用for循环遍历数组的三种常用方法及对应的时间消耗,总结javascript使用for循环遍历数组的相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • javascript实现动态统计图开发实例

    javascript实现动态统计图开发实例

    这篇文章主要介绍了javascript实现动态统计图开发实例,需要的朋友可以参考下
    2015-11-11
  • JS正则替换去空格的方法

    JS正则替换去空格的方法

    这篇文章主要介绍了JS正则替换去空格的方法,结合实例形式对比分析了针对全角与半角空格的删除技巧,涉及replace正则替换的使用方法,需要的朋友可以参考下
    2017-03-03
  • 基于JavaScript实现通用tab选项卡(通用性强)

    基于JavaScript实现通用tab选项卡(通用性强)

    选项卡在大量的网站都有应用,虽然形式各有不同,但是索要达成的目的都是一样的,一般都是为了进行分类或者节省网页空间只用,算是一件利器,下面就是一个选项卡的代码实例,通用性很强,下面就和大家分享一下
    2016-01-01

最新评论