<script type="text/javascript">
function myclass(){}
</script>当一个函数定义的时候,会自定义个一个内部的属性[scope],他存放着Global Object(全局的东西 如变量 函数 ==)
可以认为成maclass.scope = Global Object当代码如下时候
<script type="text/javascript">
function myclass(){
    function class(){      }
}
</script>
class也会自定义一个内部属性[scope],
他先放着myclass的Activation Object,然后是全局的Global Object我问别人Activation Object是指什么
某某说是myclass的活动对象(包括 this、参数,局部变量 ==的东西)现在我只是想了解函数定义时候的一些东西 上面的理解对吗?
请指教..............

解决方案 »

  1.   


    我认为楼主所说的什么Scope Active之类的..
    那是函数实例执行期的概念
    javascript引擎在函数实例执行时候 都会创建一个执行环境(execution context),执行环境包含一个
    调用对象(call object).调用对象是一个Scriptobject结构(静态且与函数生命周期一致)来保存内部变量表varDecls、内嵌函数表funDecls、父级引用列表upvalue等语法分析结构(注意varDecls和funDecls等信息是在语法分析阶段就已经得到,并保存在语法树中。函数实例执行时,会将这些信息从语法树复制到scriptObject上)。
      

  2.   

    函数定义的时候 也就是他的作用域确定的时候,他的作用域就是他外层函数执行后的作用域,如果没有外层函数 ,那么他的作用域调用对象就是window了,
    函数执行的时候,会为他分配一个作用域,就是window,然后回给他一个调用对象,这个调用对象有一个aurguments参数,此时形参,本地变量 内层函数都在这个以调用对象为首的作用链上了 
      

  3.   

    to 2楼  现在只讨论定义函数时候的事情
    执行时候的事情   暂时不在这里讨论to 3楼 同上面   另外定义部分你说的  好象比较容易就能理解吧............
      

  4.   


    class也会自定义一个内部属性[scope], 
    他先放着myclass的Activation Object,然后是全局的Global Object 我问别人Activation Object是指什么 
    某某说是myclass的活动对象(包括 this、参数,局部变量 ==的东西) 问题是 定义的时候根本你就没有Activation Object的啊 这个是执行期的概念啊
      

  5.   

    有的http://www.cnblogs.com/return/archive/2009/10/31/1593411.html
      

  6.   

    http://blog.csdn.net/xiaofan_sap/archive/2009/11/13/4809239.aspx
    看看这篇吧  ~~