对 Javascript 吊装感到困惑
Confused about Javascript Hoisting
function a(){
function b(){
}
}
上面javascript的代码中,在吊装阶段,函数b
会被吊装吗?或者只是 a
将被提升,因为只有函数 a
在词法上位于全局上下文中。
当函数 (a
) 被调用。
b
不会导出到全局范围。
声明被提升到其包含范围的顶部,对于函数 b
是函数 a
。
函数 b
将被提升到函数 a
的顶部,但它已经在那里了。
而且,函数 a
(根据您的代码)将被提升到全局范围的顶部。
函数 a 将被提升到全局范围的顶部(假设 this 在全局范围内)并且函数 b 将被提升到函数 a 创建的范围的顶部。
在提升过程中,所有声明将向上移动到父函数声明的下方。
Ex: function fun(){
a = 10;
var c = b();
function b(){}
}
会变得像
function fun(){
var a;
var c;
function b(){};
a = 10;
c = b();
}
function a(){
function b(){
}
}
上面javascript的代码中,在吊装阶段,函数b
会被吊装吗?或者只是 a
将被提升,因为只有函数 a
在词法上位于全局上下文中。
a
) 被调用。
b
不会导出到全局范围。
声明被提升到其包含范围的顶部,对于函数 b
是函数 a
。
函数 b
将被提升到函数 a
的顶部,但它已经在那里了。
而且,函数 a
(根据您的代码)将被提升到全局范围的顶部。
函数 a 将被提升到全局范围的顶部(假设 this 在全局范围内)并且函数 b 将被提升到函数 a 创建的范围的顶部。
在提升过程中,所有声明将向上移动到父函数声明的下方。
Ex: function fun(){
a = 10;
var c = b();
function b(){}
}
会变得像
function fun(){
var a;
var c;
function b(){};
a = 10;
c = b();
}