wie

2016-07-13 6 views
0

eine Funktion als Argument in Javascript nennt ich Javascript lerne, ich frage mich, ob es möglich war, so etwas wie diese Verwendung von Lambda-Funktionwie

function operation (function f, num1, num2){ 
    f.call(num1, num2); 
} 
operation((a,b)=>{return a+b}, 2,3); 

Ich habe unerwartete Token Funktion in Zeile 1 haben , für funktion f ich stelle mir vor, gibt es eine möglichkeit, dies irgendwie funktionieren zu lassen?

+0

In Javascript nicht Typen existieren! Ersetzen Sie 'function f' durch' df' – CMedina

Antwort

3

Versuchen Sie folgendes:

function operation (f, num1, num2){ 
    f(num1, num2); 
} 
operation((a,b)=>{return a+b}, 2,3); 

JavaScript ist untypisierten Sprache. Wenn Sie call verwenden möchten, versuchen Sie dies:

function operation (f, num1, num2){ 
    f.call(this, num1, num2); 
} 
operation((a,b)=>{return a+b}, 2,3); 
1

JavaScript-Funktion Argument Definitionen haben keine Typen. Entfernen Sie das Stichwort function von kurz vor dem f der Linie 1.

0

Ja, entfernen Sie einfach das function:

function operation (function f, num1, num2){ 
    f.call(num1, num2); 
} 
operation((a,b)=>{return a+b}, 2,3); 

aber dies wird Ihre Funktion mit dem this -Context num1 nennen, und der erste Parameter num2. Wenn Sie die Funktion ohne Überschreiben der this Kontext nennen wollen rufen Sie es mit ():

f(num1, num2)