JavaScript neue Prototypen

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Benutzeravatar
IMC
Mitglied
Beiträge: 724
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

JavaScript neue Prototypen

Beitrag von IMC »

Ich möchte einer JS Klasse neue Methoden hinzufügen. In meine aktuellen Fall ist es Date().

Dafür habe ich zwei Möglichkeiten zur Wahl.
Erste:

Code: Alles auswählen

Date.prototype.neueMethode = function () {
	// Code
}
Zweite:

Code: Alles auswählen

class imcgerDate extends Date {
	neueMethode() {
		// Code
	}
	weitereMethode() {
		// Code
	}
}
Meine Frage wäre nun: Ist eine der beiden Methoden bei den Validierern nicht so beliebt und sollte nicht verwendet werden?
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: JavaScript neue Prototypen

Beitrag von LukeWCS »

Hi Thorsten

OOP ist so ganz allgemein nicht unbedingt meine Wohlfühlzone, aber rein "instinktiv" würde ich Variante 2 wählen, alleine schon mal aus dem Grund, weil es in PHP im Prinzip genauso gemacht wird. Das ist aber eine eher subjektive Aussage und hat in dem Fall nicht soviel Gewicht. :wink: Aber auch bei zweitem Hinschauen würde ich erneut Variante 2 wählen, weil es bei Variante 1 zumindest theoretisch passieren könnte, dass ein anderer Ext Coder auch auf die Idee kommen könnte, das so zu machen und schon hätten wir eine potentielle Kollisions-Situation.

Ob die Validatoren das ähnlich sehen weiss ich jedoch nicht. Du könntest das deshalb auch auf .com im Extension Writers Discussion Forum fragen, da lesen ja auch die Gurus von phpBB.com mit. Da fiele mir z.B. aus dem Stand DavidIQ und MattF ein, die diese Frage sicher beantworten könnten.

edit: Und am Rande würde ich bei Variante 2 den Klassennamen IMCGerDate oder IMCGERDate wählen, denn bei JS gilt ja eh CamelCase, das kann man ja dann auch für stilistische Notationen nutzen. ^^
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1274
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: JavaScript neue Prototypen

Beitrag von Mike-on-Tour »

Hallo Thorsten,
ich sehe das so wie Patrick, WENN die "Ausgangs"-Klasse Date eine allgemein zugängliche Klasse ist, z.B. in einem allgemein verfügbaren JS-Script.
Wenn es eine JS-Klasse ist, die du selbst z.B. in einer deiner Ext selbst deklariert hast, spricht doch nichts dagegen, diese "Ausgangs"-Klasse zu erweitern, weil du ja dann der Einzige bist, der sie verwendet.
Benutzeravatar
IMC
Mitglied
Beiträge: 724
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: JavaScript neue Prototypen

Beitrag von IMC »

Hi Patrick,
LukeWCS hat geschrieben: 12.01.2025 14:28 OOP ist so ganz allgemein nicht unbedingt meine Wohlfühlzone
War meine auch nicht. Ich habe aber gelernt das damit vieles einfacher und vor allen übersichtlicher geht. Bin aber noch am lernen, bei jeden Projekt entdecke ich neues.
LukeWCS hat geschrieben: 12.01.2025 14:28 Aber auch bei zweitem Hinschauen würde ich erneut Variante 2 wählen, weil es bei Variante 1 zumindest theoretisch passieren könnte, dass ein anderer Ext Coder auch auf die Idee kommen könnte, das so zu machen und schon hätten wir eine potentielle Kollisions-Situation.
Der Gedanke ist mir auch schon gekommen. Werde die Variante 2 wählen.
LukeWCS hat geschrieben: 12.01.2025 14:28 Und am Rande würde ich bei Variante 2 den Klassennamen IMCGerDate oder IMCGERDate wählen,
Du hast wieder Recht. Bei den JS-Klassen wird zur besseren Unterscheidung zumindest der erste Buchstabe groß geschrieben. Das habe ich noch nicht so verinnerlicht. Werde es an anderen Stellen auch nachträglich anpassen.

Edit;
Hi Mike,
danke für deine Einschätzung. Werde ich jetzt so machen.
Gruß, Thorsten
Antworten

Zurück zu „Extension Bastelstube“