Javascript基礎語法學習介紹4_Function運行原理_Hosting、Scope與 ScopeChain觀念

我們於之前這篇 有簡單介紹function語法使用 但是那時還來不及詳細解說其中原理 Function運行原理 Function 之定義&調用示例 1 2 3 4 5 6 7 8 9 10 11 //沒有參數的function function myFunc(){ console.log( 'This is no parameter function' ); } myFunc(); //有參數的function function sum(a,b){ var c = a+b; console.log(c); } sum( 3 , 4 ); 每一個function於程式運行中途跑到該區function定義區域時 會自動建立一塊Execution Context之後 於function內部其實還會有兩階段過程運作 【Function 建立階段】 =>Stage1-1.初始化一個空間(Scope Chain) =>Stage1-2.創建三種變數物件 VO (Variable Object) 第一種 function arguments object(參數物件) 第二種 function中的function之指標 object 第三種 function中的變數設值為undifined 1 2 3 4 function 函式名稱 ( 參數物件 ){ 掃描 function中的function - pointer 掃描 function中的variable - 設為 undifined } =>Stage1-3.決定 this variable 的 值 【Function 運行階段】 =>進行逐行運行 ====================================================================== 這邊來一個簡單範例 1 2 3 4 5 6 7 8 9 10 11 function myFunc(i){ var a = 'Hi' ; var b = function innerFunc(){ }; f...