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程序设计有所帮助。

相关文章

  • ES6中module模块化开发实例浅析

    ES6中module模块化开发实例浅析

    这篇文章主要介绍了ES6中module模块化开发,结合实例形式分析了ES6中模块化开发的相关功能、使用方法与相关注意事项,需要的朋友可以参考下
    2017-04-04
  • Bootstrap按钮组实例详解

    Bootstrap按钮组实例详解

    单个按钮在Web页面中的运用有时候并不能满足我们的业务需求,常常会看到将多个按钮组合在一起使用,比如富文本编辑器里的一组小图标按钮等。本文将详细介绍Bootstrap按钮组,感兴趣的朋友一起看看吧
    2017-07-07
  • web开发js字符串拼接占位符及conlose对象Api详解

    web开发js字符串拼接占位符及conlose对象Api详解

    本篇文章主要为大家介绍了web开发中字符串的拼接,占位符的使用以及conlose对象Api的使用,有需要的朋友可以借鉴参考下,希望可以有所帮助
    2021-09-09
  • 文本框回车提交与禁止提交示例

    文本框回车提交与禁止提交示例

    文本框输入数据后使用回车进行提交,想必大家都尝试过吧,在本文有个不错的示例,喜欢的朋友可以参下
    2013-09-09
  • 总结AJAX相关JS代码片段和浏览器模型

    总结AJAX相关JS代码片段和浏览器模型

    总结AJAX相关JS代码片段和浏览器模型...
    2007-08-08
  • 探讨跨域请求资源的几种方式(总结)

    探讨跨域请求资源的几种方式(总结)

    这篇文章主要介绍了探讨跨域请求资源的几种方式(总结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • 用js屏蔽被http劫持的浮动广告实现方法

    用js屏蔽被http劫持的浮动广告实现方法

    下面小编就为大家带来一篇用js屏蔽被http劫持的浮动广告实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • p5.js 毕达哥拉斯树的实现代码

    p5.js 毕达哥拉斯树的实现代码

    这篇文章主要介绍了p5.js 毕达哥拉斯树的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • JS实现简单打砖块弹球小游戏

    JS实现简单打砖块弹球小游戏

    这篇文章主要为大家详细介绍了JS实现简单打砖块弹球小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • 禁止iframe脚本弹出的窗口覆盖了父窗口的方法

    禁止iframe脚本弹出的窗口覆盖了父窗口的方法

    这篇文章主要介绍了如何禁止iframe里面的脚本弹出的窗口覆盖了父窗口,经测试,貌似只能在IE下进行需要的朋友可以参考下
    2014-09-09

最新评论