往下看,你能看得懂哒 ^_^
一、理论
先了解一下,下面内容直接用简称代替
Global Object(简称GO,全局对象)
Variable Object(简称VO,变量对象)
Activation Object(简称AO,活跃对象)
Variable Environment(简称VE,变量环境)
在新的ECMA版本规范中,已经把VO改成VE
二、举例说明
这题相信大家都知道答案了,undefined和200,那么到底是怎样执行的呢?
console.log(n)
var n = 100
function foo() {
n = 200
}
foo()
console.log(n)
所有代码都是在调用栈里执行的
7.打印最后一行代码,n是200
PS:如果再次调用foo函数,会再次在内存中创建VE,然后放进调用栈再走一遍
这里我没有演示AO,也跟VE差不多,是在调用栈中先用到的就叫AO不用了就销毁,指针不再指向那块内存
最后画图不易....