function a(){
function b(){
}
}
在上面的javascript代码中,在提升阶段,函数b
会被挂起吗?或者只是a
将被提升,因为只有函数a
在词汇上坐在全局上下文中。
答案 0 :(得分:3)
b
将被提升到它出现的范围的顶部(由函数体a
定义的范围)在提升阶段,当该函数(a
)是调用
b
将不会导出到全局范围。
答案 1 :(得分:1)
函数a将被提升到全局范围的顶部(假设这在全局范围内),函数b将被提升到函数a创建的范围的顶部。
答案 2 :(得分:0)
声明被提升到其包含范围的顶部,函数b
的函数为a
。
函数b
将被提升到函数a
的顶部,但这就是它已经存在的位置。
并且,函数a
(基于您的代码)将被提升到全局范围的顶部。
答案 3 :(得分:0)
在提升过程中,所有声明都会向上移动到父函数声明之下。
Ex: function fun(){
a = 10;
var c = b();
function b(){}
}
会变得像
function fun(){
var a;
var c;
function b(){};
a = 10;
c = b();
}