JavaScript函数作用域链分析


Posted in Javascript onFebruary 13, 2015

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

作用域链:

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

JavaScript函数作用域链分析

作用域链就是从里到外的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程序设计有所帮助。

Javascript 相关文章推荐
filemanage功能中用到的common.js
Apr 08 Javascript
JQuery 操作select标签实现代码
May 14 Javascript
JavaScript高级程序设计 扩展--关于动态原型
Nov 09 Javascript
javascript重复绑定事件造成的后果说明
Mar 02 Javascript
js比较和逻辑运算符的介绍
Mar 10 Javascript
SeaJS入门教程系列之使用SeaJS(二)
Mar 03 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
Node.js实现兼容IE789的文件上传进度条
Sep 02 Javascript
JS中定位 position 的使用实例代码
Aug 06 Javascript
iconfont的三种使用方式详解
Aug 05 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
详解JS ES6编码规范
May 07 Javascript
JavaScript匿名函数用法分析
Feb 13 #Javascript
js实现进度条的方法
Feb 13 #Javascript
动态加载js的方法汇总
Feb 13 #Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 #Javascript
jQuery向后台传入json格式数据的方法
Feb 13 #Javascript
浅谈轻量级js模板引擎simplite
Feb 13 #Javascript
js实现拖拽效果
Feb 12 #Javascript
You might like
PHP输入流php://input介绍
2012/09/18 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
JavaScript基于Dom操作实现查找、修改HTML元素的内容及属性的方法
2017/01/20 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
Vue常用指令详解分析
2018/08/19 Javascript
layer更改皮肤的实现方法
2019/09/11 Javascript
[04:44]DOTA2 2017全国高校联赛视频回顾
2017/08/21 DOTA
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
python 常用的基础函数
2018/07/10 Python
Python之修改图片像素值的方法
2019/07/03 Python
django的ORM操作 增加和查询
2019/07/26 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
如何让Java程序执行效率更高
2014/06/25 面试题
西安众合通用.net笔试题
2013/03/18 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
后勤园长自我鉴定
2013/10/17 职场文书
化工专业推荐信范文
2013/11/28 职场文书
银行领导证婚词
2014/01/11 职场文书
公司总经理岗位职责
2014/03/15 职场文书
公司合作协议书范本
2014/04/18 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
公证委托书标准格式
2014/09/11 职场文书
小升初自荐信范文
2015/03/05 职场文书
党支部工作总结2015
2015/04/01 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书