码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript作用域学习笔记

时间:2015-08-25 15:59:49      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

JavaScript的作用域

JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里。

局部变量在整个函数体始终都是有定义的。

 

函数作用域问题可将函数分为定义与执行两个阶段。

1.函数在定义时会将函数的[[scope]]属性链接到定义它的作用域(scope.chain)。

2.函数执行时会创建一个”运行期上下文“的内部对象,该对象定义函数的执行环境,每一个运行期上下文都有自己的作用域链,用于标示符解析。

函数调用时还会创建一个"活动对象”(JS引擎预编译时刻创建),在活动对象内创建arguments属性,对于每一个在这个函数中申明的局部变量和函数定义以及函数形参,都作为该活动对象的同名命名属性。然后将这个活动对象做为scope chain的最前端,。当运行期上下文被销毁,活动对象也随之销毁。

 

http://www.laruence.com/2009/05/28/863.html

http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html

作用域链和代码优化

延长作用域链

JavaScript预编译

 

Javascript作用域学习笔记

标签:

原文地址:http://www.cnblogs.com/xinup/p/4757160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!