2017-10-06 1 views
0

Ich habe eine Frage bezüglich der Namenskonvention von Methoden/Funktionen in JavaScript. Ich habe gesehen, wo die meisten Ereignisse Namen mit "on" zum Beispiel "onClick" beginnen. Wenn onClick eine Funktion aufruft, sollte dieser Funktionsname mit "on" vorangestellt werden?Namenskonvention für Methode/Funktionen in Javascripts

Zum Beispiel:

<Button onClick={() => onClose()}>CANCEL</Button> 

onClose(){ 
do something... 
} 

oder ist es oK zu haben:

<Button onClick={() => close()}>CANCEL</Button> 

    close(){ 
    do something... 
    } 
+1

Sie können sie nennen, was Sie wollen. Es gibt auch eine '.click()' Methode. – Craicerjack

+0

Zum Schließen gewählt, weil es zu meinungsbasiert ist. Im Allgemeinen würde ich die Namen von Event-Handlern mit dem Wort "on" beginnen, um anzuzeigen, dass es auf etwas reagiert, d. H. "Auf" dies, mache eine Sache. Statische Funktionen, die explizit aufgerufen werden, um eine Aufgabe auszuführen, würden nicht mit "on" beginnen und würden einfach benannt werden, um anzuzeigen, was sie * tun *. – jered

+1

Mögliches Duplikat von [JavaScript Namenskonventionen] (https://stackoverflow.com/questions/921133/javascript-naming-conventions) – Amit

Antwort

1

Ich habe gesehen, wo die meisten Ereignisse Namen mit "on" zum Beispiel "onClick" beginnen.

Sie nicht.

  • Sehr alten Schule HTML-Attribute verwendet, um mit zu binden Event-Handler starten auf
  • Old-School-Ereignis mit JS Bindung verwendet on auf den Eigenschaftsnamen (window.onload = function() ...)
  • on Reagieren verwendet seine Event-Handler zu binden in JSX

Moderne JS verwendet addEventListener, die die Ereignisnamen als Argument nur akzeptiert (addEventListener("load", function() ...).


Wenn onClick eine Funktion aufruft, sollte die Funktionsnamen vorangestellt mit "on"?

Es gibt keine Anforderung, dass dies der Fall ist.

Ich habe keine Kodierungskonvention gesehen, die dies tut.

0

Die Methode/Funktion Name sollte jemand sagen, wer den Code liest, was diese Methode/Funktion tut.

+0

Sie haben sich widersprochen. "Wenn es auslöst" und "Was es tut" sind ganz andere Dinge. – Quentin

+0

Richtig, ich werde das bearbeiten, sieht aus, als ob ich mich nicht erklären würde – Ringuerel

0

on[name] Benennungskonversation ist/wurde verwendet, um klar zu machen, dass, wenn Sie dieser Eigenschaft eine Funktion zugewiesen haben, diese Funktion für das Ereignis [name] aufgerufen wird.

Die Funktion, die für dieses Ereignis aufgerufen wird, hätte jedoch nicht das Präfix on. Sie benennen die Funktion im Allgemeinen durch die Aktion, die sie ausführt. Also, wenn diese Funktion etwas schließt, nennen Sie es close, wenn diese Funktion aufgerufen wird, wenn z. der Dialog ist geschlossen Sie könnten es onClose

0

Wenn es um Namenskonventionen geht, müssen Sie darauf achten, andere Funktionen nicht mit Ihrer Funktion zu verdecken. Vor kurzem hatte ich auch Probleme mit Callback namens close im globalen Geltungsbereich, die aufgrund anderer, browsereigener Funktionen im Geltungsbereich nicht aufgerufen werden konnten. Also normalerweise bleibe ich weg von Namen wie nah, offen etc. und stattdessen verwenden mehr beschreibende Namen wie

0

Die onXyz Konvention sprechen Sie über das sehr alte Paradigma der Einrichtung von Veranstaltungen entweder über HTML-Ereignis-Attribute (wie in Ihren Beispielen) oder über Eigenschaften von DOM-Objekten in JavaScript (zB window.onload = ...).Beide Techniken haben schwerwiegende Nachteile und beide sollten nicht weiter verwendet werden (verwenden Sie stattdessen .addEventListener()). ** Tatsächlich beginnen Ereignisnamen selbst nie tatsächlich mit on. Zum Beispiel wird das click Ereignis click genannt, nicht onclick, das on sollte anzeigen, was Sie tun wollten, wenn click auftritt. Aber diese zwei veralteten Techniken sind einzigartig für Ereignisregistrierungen und nicht für Funktionen/Methoden im Allgemeinen, so dass das on Paradigma nicht etwas ist, worüber man sich Sorgen machen sollte.

Es gibt Namenskonventionen für Funktionen und Methoden:

  • Sie sollten Verb artigen Namen haben, um anzuzeigen, dass sie eine Verhalten/Aufgabe ausführen (während Dateneigenschaften Substantiv ähnliche haben sollten Namen die indicate Informationen, die sie speichern).
  • Wenn die Funktion als Funktion oder als Methode von einem Objekt aufgerufen werden soll, sollte sie in "camel case" geschrieben werden (wobei das erste Wort alles Kleinbuchstaben, aber beliebige/alle zusätzlichen Wörter ist) beginnt mit einem Kapital Brief (dh doSomethingCool).
  • Wenn die Funktion als Konstruktor-Funktion zu handeln (aufgerufen mit dem new Operator werden, um eine neue Instanz eines Objekt zu erstellen), es soll geschrieben werden " pascal case "(wobei jedes Wort mit einem Großbuchstaben beginnt). Diese Konvention warnt andere Entwickler, dass sie die Funktion mit dem Operator new aufrufen sollten.