簡體   English   中英

對Java語言吊裝感到困惑

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM