• 变量对象和活动对象有什么区别.


    函数在创建过程中,并不是直接把函数渲染出来,而是一步步的渲染处理。

    看下面的黑色图片。

    首先说一下,function的优先级会比var声明高一些。

    下面的图片里,定义了test()函数,我们从test()的上下文来进行理解

    函数一开始根据test()函数的属性,来创建对应的变量对象。

    VO:Variable Object 

    把所有的函数生命放进现在声明的变量对象中

    然后把所有的变量声明放进变量对象中

    他们其实都是同一个对象,只是处于执行上下文的不同生命周期。不过只有处于函数调用栈栈顶的执行上下文中的变量对象,才会变成活动对象。

    附加

     在函数里,先执行function的定义。这里有全局函数test()。当然首先建立arguments对象。

    在test里有function,function的优先级比var的要高一些,先执行function

    在创始阶段 foo<foo reference > 

    <>里面的这一块是为后面的function准备好的地址。在发现有var,执行var bar:undefined

    这里注意.

    有两个foo,此时规定 当var声明的变量遇到同名属性时,会跳过不会覆盖

    创建阶段完成,进行执行阶段,这里就是活动对象和变量对象的分界岭了

    end......

  • 相关阅读:
    td中内容自动换行
    PHP计算两个时间的年数、月数以及天数
    phpexcel常用操作
    php实现将人民币金额转大写的办法
    解决 PHPExcel 长数字串显示为科学计数
    phpexcel单元格内换行
    phpexcel设置所有单元格的默认对齐方式
    {dede:sql}标签的用法
    PHP 文件上传
    Dedecms 数据库结构分析
  • 原文地址:https://www.cnblogs.com/zx-qd/p/10521968.html
Copyright © 2020-2023  润新知