• 技术文章 >web前端 >js教程

    JavaScript 函数的执行过程_javascript技巧

    2016-05-16 09:00:21原创907
    1. 每一个JavaScript函数都是Function对象的一个实例, 它有一个仅供JavaScript引擎存取的内部属性[[Scope]]. 这个[[Scope]]存储着一个作用域的集合, 这个集合就叫”作用域链”, 集合中存储着”可变对象”VO或”活动对象”AO(AO比VO多this和arguments属性).

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

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

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

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

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

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

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:如何让一个json文件显示在表格里【实现代码】_javascript技巧 下一篇:如何使用AngularJs打造权限管理系统【简易型】_AngularJS
    大前端线上培训班

    相关文章推荐

    • innerhtml是jquery方法么• javascript 怎么将时间转毫秒• javascript怎么设置标签的背景颜色• jquery select 不可编辑怎么办• javascript怎么判断指定值是否是偶数

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网