执行上下文中的变量对象和活动对象
来源:互联网 发布:mac vscode c语言 编辑:程序博客网 时间:2024/06/05 06:05
一个执行上下文可以抽象理解为object。每个执行上下文都有一系列的属性(可以称为上下文状态),他们用来追踪关联代码的执行进度。
Execution context
变量对象
Vars,function declaration,arguments…
作用域链
variable object+all parent scopes
this值
Context object
变量对象:
A variable object is a scope of data related with the execution context. It’s a special object associated with the context and which stores variables and function declarations are being defined within the context.
变量对象是一个抽象的概念,在不同的上下文中,它表示使用不同的object。例如,在global全局上下文中,变量对象也是全局对象自身【global object】。(这就是我们可以通过全局对象的属性来指向全局变量)
var foo = 10; function b1() {} var b2=function a(){};//这个也是函数表达式,不能通过a访问,因为函数表达式不包含于变量对象,但可以通过b2(function b3() {}); console.log( this.foo == foo, // true window.b1 == b1,// true window.b2==b2); console.log(b3); //报错Uncaught ReferenceError: b3 is not defined
Global VO
foo
10
b1
<function>
b2
<function>
如上所示,函数“b3”如果作为函数表达式则不被包含于变量对象。这就是在函数外部尝试访问产生引用错误(ReferenceError)的原因。请注意,ECMAScript和其他语言相比(如c/c++),仅有函数能够创建新的作用域。使用eval的时候,我们会使用一个新的执行上下文。eval会使用全局变量对象或调用者的变量对象(eval的调用来源)。
活动对象:
当函数被调用后,这个特殊的活动对象就被创建了。它包含普通参数与特殊参数对象(具有索引属性的参数映射表)。活动对象在上下文中作为变量对象使用。
function foo(x, y) { var z = 30; function bar() {} (function baz() {}); } foo(10, 20);
Action object
x
10
y
20
arguments
{0:10,1:20,…}
z
30
bar
<function>
函数表达式不在AO的行列
- 执行上下文中的变量对象和活动对象
- JavaScript 执行上下文和变量对象
- javascript中的变量对象和活动对象
- JavaScript核心:对象 原型链 构造函数 执行上下文栈 执行上下文 变量对象 活动对象 作用域链 闭包 This 总结
- 执行环境和对象上下文
- 执行环境和对象上下文
- JS执行上下文与变量对象
- JavaScript上下文执行对象
- 执行上下文、变量对象、作用域链、this
- 弄清楚作用域、执行上下文、变量对象、作用域链
- JavaScript中的执行环境、变量对象和作用域链
- 图解Javascript——变量对象和活动对象
- JavaScript核心原理(一)执行环境、执行环境栈、变量对象、活动对象
- js笔记---作用域(执行上下文[execution context],活动对象) 闭包
- js笔记---作用域(执行上下文[execution context],活动对象) 闭包
- 作用域,作用域链,活动对象,执行上下文,静态作用域等
- Symbian 中的活动对象和CS框架
- js 中的活动对象
- 黑马程序员——java基础——多态
- Xcode版本更新记录
- 教你学会将word转换成pdf的小技巧
- hdu 5282 Senior's String动态规划
- linux下find(文件查找)命令的用法总结
- 执行上下文中的变量对象和活动对象
- 日经社説 20150721 多様な災害を予見し備えを
- Mysql第八天 分区与分表
- 关于DPM(Deformable Part Model)算法中模型可视化的解释
- 机房收费系统基本流程
- JQuery中$.ajax()方法参数详解
- mysql强制索引和禁止某个索引
- 打造Android万能上拉下拉刷新框架--XRefreshView(三)
- 关于Action返回结果类型的事儿(下)