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 相关文章推荐
Javascript入门学习资料收集整理篇
Jul 06 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
js点击文本框后才加载验证码实例代码
Oct 20 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
微信小程序 配置文件详细介绍
Dec 14 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
Jan 27 Javascript
JavaScript实现一个空中避难的小游戏
Jun 06 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 Javascript
微信小程序实现省市区三级地址选择
Jun 21 Javascript
Angular(5.2->6.1)升级小结
Dec 27 Javascript
js实现指定时间倒计时效果
Aug 26 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
php实现网站插件机制的方法
2009/11/10 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
thinkPHP简单实现多个子查询语句的方法
2016/12/05 PHP
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
家长会学生家长演讲稿
2013/12/29 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
交通事故案件代理词
2015/05/23 职场文书
关于感恩的作文
2019/08/26 职场文书
导游词之无锡古运河
2019/11/14 职场文书
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript