Darf ich Funktionsparameternamen in Javascript wiederholen?

8

Ist die folgende Funktion legal und portabel?

%Vor%

Manchmal möchte ich einen Callback schreiben, der nicht die Parameter ganz links verwendet, also frage ich mich, was der prägnanteste Weg dafür ist.

Schlussfolgerung :

function(_1, _2, x) ist wahrscheinlich so kurz wie es geht.

    
hugomg 27.07.2011, 23:21
quelle

5 Antworten

9

Es ist in nicht striktem Moduscode gültig, aber im strikten Moduscode ungültig :

  

Es ist ein SyntaxError, wenn ein Identifier-Wert mehr als einmal auftritt   innerhalb einer FormalParameterList eines strikten Modus FunctionDeclaration oder   Funktionsausdruck.

Quelle: Ссылка

Daher möchten Sie dies möglicherweise vermeiden, da Sie zu einem bestimmten Zeitpunkt in den strikten Modus wechseln möchten ...

    
Šime Vidas 27.07.2011, 23:33
quelle
3

Sie können arguments verwenden, aber das wird funktionieren:

%Vor%

Ausgaben:

%Vor%

Ссылка

Und hier ist, was es druckt, wenn Sie versuchen, das Argument _ zu verwenden:

%Vor%

Ссылка

    
Jared Farrish 27.07.2011 23:23
quelle
1
%Vor%

Das Schreiben eines allgemeinen Hilfsprogramms zum Ignorieren von Parametern könnte als sauberer angesehen werden.

    
Raynos 27.07.2011 23:34
quelle
0

Wenn Probleme mit dieser Art von Funktionssignaturen auftreten, versuchen Sie, sie neu zu schreiben, um ein einzelnes options -Objekt mit benannten Eigenschaften zu akzeptieren. Auf diese Weise können Sie eine beliebige Kombination von Argumenten übergeben.

ZB:

%Vor%     
Tom 27.07.2011 23:28
quelle
0

Nahm mich alle fünf Sekunden zu testen und anscheinend ja, das ist legal.

Off-Thema

Ich kann sehen, warum Sie das tun wollen. Nehmen Sie zum Beispiel die Methode $.get() von jQuery. Angenommen, Ihre Callback-Funktion "Erfolg" musste nur das dritte Argument jqXHR verwenden.

%Vor%

Obwohl Sie auch die ersten beiden Argumente x und y nennen können.

    
Phil 27.07.2011 23:23
quelle

Tags und Links