当前位置:  首页  >  前端开发  >  JavaScript

JavaScript函数的执行过程_javascript技巧

下面小编就为大家带来一篇JavaScript函数的执行过程。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
1. 每一个JavaScript函数都是Function对象的一个实例, 它有一个仅供JavaScript引擎存取的内部属性[[Scope]]. 这个[[Scope]]存储着一个作用域的集合, 这个集合就?#23567;?#20316;用域链”, 集?#29616;?#23384;储着”可变对象”VO或”活动对象”AO(AO比VO多this和arguments属性).

2. 当函数被创建后, 其父级作用域的作用域链中的所有可变对象会被加入到它的[[scope]]中(如果父作用域是全局, 那么当前函数的作用域链中就只会加入一个全局对象).

3. 当函数被执行时, 函数的执行环境会被推入一个环境栈中:

1.此时进入函数的变量初始化阶段, 此阶段会确定函数内部: this值, 函数的参数, 函数的声明, 变量的声明, 以及arguments. 根据这些值组成当前函数的活动对象AO, 之后会将AO对象保存到当前函数作用域链的首位.

注意: AO按如下顺序填充:

1.函数参数(若有传参, 会被赋值, 若?#21019;?#21442;, 初始化值为undefined) 优先级第二
2.函数声明(若发生命名冲突, 会覆盖) 优先级最高
3.变?#21487;?#26126;(初始化变量值为undefined, 若发生命名冲突, 会忽略) 优先级第三
2.然后就到了函数的执行阶段, 此阶段当前函数中使用到的所有变量和函数声明都会从当前函数的[[Scope]]作用域链中查找, 根据作用域链中对象的位置首先会查找当前函数的AO对象, 如果没有再查找上层对象, 最后找到全局对象, 如果都没有则会报错(变量未定义).

以上这篇JavaScript 函数的执行过程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚?#23616;?#23478;。

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright ? 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有
     
28玩法
什么彩票软件可以看到那里中奖? 上海二八杠单人操作 快乐十分开奖记录 北京11选5胆拖计算器 333999香港高手论坛 双色球机选中一等奖 极速赛车走势图技巧 实时兑现足球 金多利彩票 牛牛玩法教学视频 麻将技巧视频 福彩3d过滤缩水工具 12159期4场进球开奖 甘肃快3投注下载 黑龙江快乐十分钟走势