zoukankan      html  css  js  c++  java
  • 变量对象和活动对象有什么区别.

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

    看下面的黑色图片。

    首先说一下,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......

  • 相关阅读:
    G a+b+c+d=?
    H Kuangyeye and hamburgers
    python 实现加法
    高精度板子
    angular项目一
    angular大牛的博客
    autocomplete
    angular的 表单
    快捷方式控制台调试each这种方法的时候怎么停
    自己练习的一些应该熟记的代码
  • 原文地址:https://www.cnblogs.com/zx-qd/p/10521968.html
Copyright © 2011-2022 走看看