2015-12-18 119 views
-6

這是怎麼執行到15?這15個是怎麼回事?

引擎運行的一步一步的過程是什麼?

function doSomething(a) { 
    function doSomethingElse(a) { 
     return a - 1; 
    } 

    var b; 

    b = a + doSomethingElse(a * 2); 

    console.log((b * 3)); 
} 

doSomething(2); // 15 
+3

這只是一個功課題嗎? –

+0

您是否要求澄清有關稱爲'a'的兩個變量會發生什麼?或者是別的什麼? – Pointy

+0

不,它不是作業,它是書中的一個例子,我只是迷失了。波提給了我我需要的東西。非常感激。 –

回答

4
  1. doSomething()該呼叫被製成,具有2作爲參數(在功能結合到a)。
  2. 撥打doSomethingElse()4a * 2)作爲參數,綁定到該內部函數中的符號a
  3. 內部函數返回3a - 1)。
  4. doSomething()函數然後將其a(仍然2)添加到結果,給出5,並將其分配給b
  5. 調用console.log()15作爲參數(b * 3)。
4

呃......一個工作?

doSomething(2) 
b = 2 + doSomethingElse(2 * 2) 
b = 2 + (4 - 1) 
console.log(5 * 3) 
+0

我真的很困惑,爲什麼你的意見暗示着,因爲在OP的功能不能正常工作? –