Erstens, nein, ich versuche nicht, irgendeine Art von Java-ähnliche Schnittstelle für meinen JavaScript-Code zu erstellen. Ich habe diese Fragen überall gesehen, und obwohl ich immer noch ein relativer Neuling für JavaScript bin, schreckte mein Verstand in (IMO) angemessenem Entsetzen über diesen Gedanken zurück.Korrekte Verwendung der JavaScript-Schnittstelle Schlüsselwort
Allerdings bin ich neugierig, was die eigentliche Verwendung des Schlüsselwortes interface
ist. Zum Beispiel ist Math
eine Schnittstelle, die Definitionen enthält (aber keine Implementierungen). I glaube, (und möglicherweise völlig falsch), dass diese gibt es ein Mittel für die Definierer der Sprache, um eine Reihe von Verhaltensweisen in verschiedenen JavaScript-Engines zu implementieren. Ist das korrekt?
Außerdem habe ich den Wunsch, eine "statische Klasse" zu haben, die eine Reihe von Hilfsmethoden enthält. Ich mag, dass Math.sqrt (3) einen äußeren Namespace ('Math') hat, der groß geschrieben ist, und eine Reihe von logisch ähnlichen Methoden und Werten darin. Vielleicht ist es nur mein Java/Ruby-Hintergrund, der mich dazu bringt, ein Kapital für die Gruppierungsobjekte zu wollen. Ist das eine schlechte Form?
var ShapeInspections = {
isSymmetrical: function (s) {
// determine if shape is symmetrical
},
numAngles: function (s) {
// return the number of angles
}
}
Ein rein erfundenes Beispiel, aber ist es anti-idiomatisch, das "Modul" auf diese Weise zu benennen?
IMHO das ist völlig in Ordnung, und ich benutze dieses Muster ziemlich oft. – meskobalazs
Was 'interface' Schlüsselwort ?! Es ist für zukünftige Verwendung reserviert, aber selbst in ES6 hat es keine definierte Verwendung. – Alnitak
Großbuchstaben bezeichnen Konstruktoren, verwenden Sie sie nicht. Oder benutze sie, aber möglicherweise zur Verwirrung anderer Entwickler. Ich verwende Großbuchstaben in Sammlungsfunktionen, um Sammlungen zu bezeichnen, aber ich bin komisch und es ist eine schlechte Übung. –