首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

execution context、scope chain、call object之类

2012-10-06 
execution context、scope chain、call object等等重读犀牛书,很多以前没概念的东西,都有点感觉了。重读书真

execution context、scope chain、call object等等
重读犀牛书,很多以前没概念的东西,都有点感觉了。重读书真是一种乐趣呀。

这次看到execution context、scope chain、call object的概念,感觉还是理解得不太透彻,不过先简要总结一下。

1.每个函数执行的时候,都会有一个execution context,即执行上下文。不在function内的代码(姑且称作全局代码)执行时,有个global上下文;function中的代码执行时,也有独立的执行上下文。

2.每个执行上下文都关联一个scope chain,这个scope chain是包含一个或者多个对象的链。对于在function外执行的代码,它的scope chain上只有一个全局对象(global object)。无嵌套函数的scope chain上有2个对象,第一个是该函数的call object(调用对象),第二个才是global object。如果是一个function内的嵌套函数,那么chain上就有3个对象了。

3.所有全局变量和function,都是global object的属性。然后function的参数和局部变量是call object的属性。嵌套函数的参数和局部变量,是嵌套的call object的属性。(这个call object是scope chain的第一个对象,第2个对象是外层的call object,然后才轮到global object)

4.所以外层function是访问不到嵌套function的局部变量的,因为它的scope chain上只有它自己的call object和global object,而嵌套function的局部变量,是内层call object的属性,所以在外层是访问不到的。总结:function只能找到在scope chain里的对象的属性。

其他内容,以后再补充。

热点排行