确定这是一些代码javascript函数对象的[[scope]]属性?
function myFunc(){
var myvar = 8;
function myFunc2(num){
alert(myvar+num);
}
myFunc2(2);
}
myFunc();
我想清楚了我的脑海里,所以如果没猜错
请纠正我,我已经阅读配发的堆栈溢出已经文章,但我想知道我理解得很好或者我应该阅读更多。
我的理解是幕后会发生什么,in global execution context there it creates function object with the name
myFunc`和它的[[scope]]属性被分配给全局变量对象。
当我调用myFunc
时,它会创建自己的执行上下文和激活对象,其中在逐行代码执行之前,初始化所有函数的参数和函数声明。
当内部函数对象被创建时,它的内部[[scope]]属性被分配了其外部执行上下文的变量对象+全局变量对象的值,因此每个函数都创建自己的执行上下文,但在此之前,每个函数的内部[[scope ]]属性被首先分配。
我已经阅读堆栈溢出文章的分配已经,但我想知道我理解得很好,或者我应该阅读更多。
您是否问变量提升是否会干扰闭包的工作?不,它不能。 – bfavaretto
我想知道我的解释是正确的?我知道如何关闭工作 –
这听起来像你理解它,但有些东西还不清楚。我只是不确定*什么*。 – bfavaretto