Czy istnieją standardowe sposoby oznaczania argumentu funkcji jako nieużywanego w JavaScript, analogicznie do uruchamiania argumentu metody z podkreśleniem w Rubim?Standardowe konwencje dla wskazywania argumentu funkcji są nieużywane w JavaScript
Odpowiedz
Tak więc mamy przykład do pracy, to jest dość powszechne z jQuery na $.each
gdzie masz kod, który nie potrzebuje indeksu, tylko wartość w zwrotnego iteracji ($.each
pisanie jest wstecznie względem Array#forEach
):
$.each(objectOrArrayLikeThing, function(_, value) { }
// Use value here
});
Korzystanie _
jest najbliższy widziałem w standardowy sposób to zrobić, tak, ale ja też widziałem wiele innych — nadając mu nazwę odblaskowe z jego przeznaczeniem i tak (index
), nazywając go unused
itp.
Korzystanie z _
jest standardem, prawdopodobnie biorąc pod uwagę ilu programistów JS również używa Ruby.
Należy zauważyć, że w Ruby, nie wychodząc z _
zignorować parametrów używać nazw zmiennych - jak ważne są nazwy zmiennych - ale _
sama, która nie jest zmienny, ale czarna dziura
. def f(_, _, x)
jest poprawna (ignorując dwa argumenty); def f(_a, _a, x)
jest nieprawidłowy (dwa parametry mają tę samą nazwę); def f(_a, _b, x) puts _a, _b, x end; f(1, 2, 3)
wyświetla wszystkie trzy liczby.
Można zrobić to samo w JavaScript z dowolnej zmiennej - JavaScript nie widzi nic złego w powtarzając nazwy parametrów: function a(a, a, x) { return [a, x]; }
jest nieważny, z późniejszym wartości zastępując wcześniejsze: a(1, 2, 3)
powraca [2, 3]
. _
to kolejna nazwa zmiennej w JavaScript, bez specjalnej obsługi.
EDYCJA: Podziękowania dla Andrew Grimma za dobre referencje na temat _
in Ruby.
Dla statusu '_' w Rubim, istnieje http://stackoverflow.com/questions/9559561/where-and -how-is-the-is-the-underscore-variable-specified –
@AndrewGrimm: Ach, dobre znalezisko. Dzięki. – Amadan
* "JavaScript nie widzi nic złego w powtarzaniu nazw parametrów" * FYI, to jest nieważne [od 2009] (http://ecma-international.org/ecma-262/5.1/#sec-13.1) jeśli używasz trybu ścisłego (a nie używanie trybu ścisłego to ... cóż ... powiedzmy: używaj trybu ścisłego :-)). Przykład: https://jsfiddle.net/L9rc23xm/ –
z przeglądarkami wspieranie demontażu struktury można zrobić:
function ({}, {}, value) {
// ...value
}
Który rodzaj schludny w to, że unika problemu wielu argumentów mających tę samą nazwę i nie będzie również powodować problemy z bibliotek, które przypisać do metody _
(lodówka, podkreślenie itp.).
Niestety, to wyrzuca, jeśli nieużywany argument to 'undefined' lub' null'. –
@OlegsJeremejevs 'funkcja ({} = {}, {} = {}, wartość) {...}' pomaga tutaj, ale staje się bałaganiarski ... – oluckyman
@oluckyman Ładne obejście! "Nie chcesz nazwać nieużywanego arg? Po prostu hantle to!" –
Z tego, co widziałem do tej pory, wciąż używane "_". –
Jeśli chcesz usunąć nieużywane zmienne, użyj [jslint] (http://jslint.com) – Tushar