2016-08-19 11 views
-1

Kann mir jemand erklären, wie die Antwort 15 ist? Ich verstehe die Funktion Umfang doSomething doSomethingElse ruft, aber ich bin ein anderes Ergebnis als 15.Ermitteln des Wertes eines Funktionsumfangs

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

    console.log(b * 3); 
} 

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

var b; 

doSomething(2); //15 
+0

Welches Ergebnis erhalten Sie? Ich bekomme 15, wenn ich es versuche. – Pat

+0

Ich bekomme 18. Wie hast du 15 bekommen? – Phoenox7

+0

Schritt für Schritt ist unter @pat – Phoenox7

Antwort

1

bekommen Es gibt keinen Raum hier beteiligt. Nichts in einem dieser Variablen würde eine Bereichsgrenze überschreiten:

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

Ein Bereich gibt eine Domäne, in der eine Variable oder eine Gruppe von Variablen (oder Funktionen, oder Objekte) hat einen Wert. Ein Bereich an sich hat also weder einen Wert, noch ist es korrekt zu sagen, dass "der Bereich von doSomething() doSomethingElse() aufruft". Und ja zu Marc's Kommentar, doSomething() und doSomethingElse sind beide im selben Umfang: global. –

Verwandte Themen