2016-08-19 8 views
-1

答えが15であることを誰かに説明することはできますか?私はdoSomethingのの関数スコープがdoSomethingElseを呼び出している理解し、私はここに関係する余地はありません15.関数スコープの値を調べる

function doSomething(a) { 
    b = a + doSomethingElse(a * 2); 

    console.log(b * 3); 
} 

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

var b; 

doSomething(2); //15 
+0

どのような結果が得られますか?私はそれを試してみると15になっています。 – Pat

+0

私は18歳になっています。あなたはどのように15歳ですか? – Phoenox7

+0

はステップバイステップで@pat – Phoenox7

答えて

1

とは異なる結果を取得しています。これらの血管のどれもスコープの境界を越えるものはありません:

1. doSomething(2); 
2. b = 2 + doSomethingElse(2 * 2); 
3. b = 2 + (2 * 2 - 1); 
4. b = 2 + 3 
5. b = 5; 
6. console.log(b * 3); 
7. console.log(5 * 3); 
8. console.log(15); 
9. 15 
+0

スコープは、変数または変数のグループ(または関数またはオブジェクト)は価値があります。スコープ自体が値を正確に持たず、doSomething()のスコープがdoSomethingElse()を呼び出しているとは言いません。そしてMarcのコメントにyes、doSomething()とdoSomethingElseは両方とも同じスコープにあります:グローバルです。 –

関連する問題