[英]Confused about Javascript Hoisting
function a(){
function b(){
}
}
在上述javascript代碼中,在提升階段,函數b
會被提升? 或只是將a
掛起,因為在全局上下文中,只有函數a
在詞法上坐着。
在提升階段調用該函數( a
)時, b
將托管在它出現的范圍的頂部(由函數a
的主體定義)。
b
將不會導出到全局范圍。
函數a將被提升到全局范圍的頂部(假定此范圍位於全局范圍內),函數b將被提升到由函數a創建的范圍的頂部。
聲明被提升到其包含范圍的頂部,對於函數b
是函數a
。
函數b
將被提升到函數a
的頂部,但是那已經存在了。
並且,函數a
(基於您的代碼)將被提升到Global范圍的頂部。
在提升過程中,所有聲明將在父函數聲明下方向上移動。
Ex: function fun(){
a = 10;
var c = b();
function b(){}
}
會變得像
function fun(){
var a;
var c;
function b(){};
a = 10;
c = b();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.