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 相关文章推荐
js中查找最近的共有祖先元素的实现代码
Dec 30 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
Javasipt:操作radio标签详解
Dec 30 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
js添加事件的通用方法推荐
May 15 Javascript
浅谈jQuery中的checkbox问题
Aug 10 Javascript
vue2笔记 — vue-router路由懒加载的实现
Mar 03 Javascript
Webpack打包慢问题的完美解决方法
Mar 16 Javascript
详解webpack运行Babel教程
Jun 13 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
Oct 09 Javascript
JS继承定义与使用方法简单示例
Feb 19 Javascript
vue实现tab栏点击高亮效果
Aug 19 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
人族 TERRAN 概述
2020/03/14 星际争霸
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JavaScript中的对象和原型(一)
2016/08/12 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python通过函数属性实现全局变量的方法
2015/05/16 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
九年级英语教学反思
2014/01/31 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
合伙经营协议书
2014/04/18 职场文书
招商引资工作汇报
2014/10/28 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python
python实现商品进销存管理系统
2022/05/30 Python