2017-09-21 2 views
0

Ich arbeite durch Head First JavaScript und haben ein Beispiel:Wie übergibt JavaScript Werte an einen Funktionsausdruck in einer Deklaration?

function addN(n) { 
 
     var adder = function(x) { 
 
         return n + x; 
 
        }; 
 
     return adder; 
 
    } 
 
    
 
    var add2 = addN(2); 
 
    
 
    console.log(add2(10)); 
 
    console.log(add2(100));

ADDN (2) zu add2 zugewiesen bekommt, aber nichts zur x zugewiesen wird. Beim Ausführen des Codes werden die Argumente 10 und 100 jedoch eindeutig an das x übergeben. Wie kann JavaScript 10 und 100 an den x-Wert übergeben?

+0

In 'add2 (10)' wird '10' der Variablen' x' zugewiesen. –

+0

'add2 = Funktion (x) {return 2 + x; }; ' – epascarello

+1

' addN' gibt eine Funktion zurück. Ihre Frage ist wie die Frage, warum dem Parameter "n" vor der Zeile "var add2 = addN (2);" nichts zugewiesen ist. – Carcigenicate

Antwort

2

Wenn Sie dies tun:

var add2 = addN(2); 

Die Variable add2 ist jetzt effektiv diese:

function(x) { 
    return 2 + x; 
} 

Da diese Funktion selbst der Rückgabewert von addN() ist. (Beachten Sie, dass in JavaScript eine Funktion ein Wert ist, der einer Variablen wie jeder andere Wert zugeordnet werden kann.)

Also, wenn Sie dies weiter tun:

add2(10); 

Sie passieren 10 zu dieser Funktion, so x wird 10 sein.

Verwandte Themen