2015-12-18 96 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的功能不能正常工作? –