Esistono metodi standard per contrassegnare un argomento di funzione come non usato in JavaScript, analogamente all'avvio di un argomento di metodo con un trattino di sottolineatura in Ruby?Le convenzioni standard per indicare un argomento di funzione non sono utilizzate in JavaScript
risposta
Solo così abbiamo un esempio di lavorare da, questo è abbastanza comune con jQuery di $.each
in cui si sta scrivendo il codice che non ha bisogno l'indice, proprio il valore, nella richiamata iterazione ($.each
è arretrato rispetto al Array#forEach
):
$.each(objectOrArrayLikeThing, function(_, value) { }
// Use value here
});
Utilizzando _
è il più vicino che ho visto ad un modo standard per farlo, sì, ma ho anche visto un sacco di altri — dandogli un nome riflettente del suo scopo in ogni caso (index
), chiamandolo unused
, ecc.
L'utilizzo di _
è standard, probabilmente in base a quanti sviluppatori JS utilizzano anche Ruby.
Si noti che in Ruby, non si utilizza nomi di variabili a partire da _
di ignorare i parametri - come quelli sono nomi di variabili validi - ma _
sé
, che non è una variabile, ma un buco nero
. def f(_, _, x)
è valido (ignorando due argomenti); def f(_a, _a, x)
non valido (due parametri hanno lo stesso nome); def f(_a, _b, x) puts _a, _b, x end; f(1, 2, 3)
emette tutti e tre i numeri.
È possibile fare la stessa cosa in JavaScript con qualsiasi variabile - JavaScript vede nulla di sbagliato nel ripetere i nomi dei parametri: function a(a, a, x) { return [a, x]; }
è una dichiarazione valida, con i valori più tardi sovrascrivendo quelli precedenti: a(1, 2, 3)
rendimenti [2, 3]
. _
è solo un altro nome di variabile in JavaScript, senza alcuna gestione speciale.
EDIT: Grazie Andrew Grimm per una buona referenza su _
in Ruby.
Per lo stato di '_' in Ruby, c'è http://stackoverflow.com/questions/9559561/where-and -come-è-il-underscore-variabile-specificata –
@AndrewGrimm: Ah, buona scoperta. Grazie. – Amadan
* "JavaScript non vede nulla di sbagliato nel ripetere i nomi dei parametri" * Per tua informazione non è valido [dal 2009] (http://ecma-international.org/ecma-262/5.1/#sec-13.1) se utilizzi la modalità rigorosa (e non usare la modalità rigorosa è ... beh ... diciamo solo: usa la modalità rigorosa :-)). Esempio: https://jsfiddle.net/L9rc23xm/ –
Con i browser di supporto destrutturazione si può fare:
function ({}, {}, value) {
// ...value
}
che è una specie di pulito in quanto evita il problema di molteplici argomenti che hanno lo stesso nome e, inoltre, non creerà problemi con le librerie che assegnano i metodi per _
(lodash, trattino basso, ecc.).
Sfortunatamente, questo genera se un argomento non utilizzato è 'indefinito' o' null'. –
@OlegsJeremejevs 'function ({} = {}, {} = {}, valore) {...}' aiuta qui, ma diventa complicato ... – oluckyman
@oluckyman Bella soluzione! "Non voglio nominare un argo non usato? Basta manometterlo!" –
- 1. Indicare standard C++ in origine in un modo standard
- 2. Tecniche JavaScript non silenti per indicare l'errore
- 3. Convenzioni di denominazione standard per Objective-C
- 4. Trova le funzioni Javascript non utilizzate?
- 5. Quali sono le patch utilizzate in SVN?
- 6. Convenzioni di denominazione JavaScript
- 7. Quali convenzioni di denominazione utilizzate per rami e tag SVN?
- 8. Che cosa sono le convenzioni per le chiamate personalizzate?
- 9. Le macro Variadic non sono standard?
- 10. Definizione di proprietà e convenzioni di denominazione in JavaScript
- 11. Javascript eval() per la funzione con argomento
- 12. Quali sono le convenzioni di denominazione in C#?
- 13. La LRU cancellerà le voci che non sono state utilizzate per un certo periodo di tempo?
- 14. Quanto costose sono le chiamate di funzione in JavaScript?
- 15. Quali sono tutte le "convenzioni" per Ruby on Rails?
- 16. Quali sono le istruzioni IN & OUT in x86 utilizzate?
- 17. Esiste un metodo per pulire il sito risorse non utilizzate
- 18. Strumenti per trovare intestazioni incluse che non sono utilizzate?
- 19. quali sono le interfacce più utilizzate in C#?
- 20. Quali sono tutte le convenzioni di denominazione monade?
- 21. Quali sono le eccezioni standard di Scala?
- 22. Quali sono le convenzioni di denominazione e altri standard utilizzati durante lo sviluppo di una classe in PHP?
- 23. Quali sono le varie directory in @INC utilizzate?
- 24. Come posso indicare argomenti di funzione non utilizzati?
- 25. Quali sono le convenzioni di denominazione più leggibili per le tabelle di ricerca?
- 26. std :: is_function non riconosce argomento di un template in funzione
- 27. C# codifica standard per le variabili membro private
- 28. funzione esistente per combinare le deviazioni standard in R?
- 29. secondo argomento JSON.stringify in JavaScript
- 30. Come indicare il tipo di argomento del modello di contenitore?
Da quello che ho visto finora, è ancora '_' che viene utilizzato. –
Se stai cercando di rimuovere le variabili non utilizzate usa [jslint] (http://jslint.com) – Tushar