Olaf Schneider: Zugriff aus privater Methode in Prototype-Objekt auf this?

Beitrag lesen

Hallo Christian,

  1. auf das Prototypobjekt verzichten und alle Methoden in den Konstruktor schreiben. Damit sind die öffentlichen Methoden priviligiert und haben Zugriff auf die privaten.

Vorteile: [im Zitat gekürzt]

  • Code ist leichter für Dritte zu verstehen

Da muss ich dir leider unrecht geben. Methoden, die innerhalb des Konstruktors definiert sind, machen für mich den Code nur unleserlicher und schlechter zu verstehen und zu warten. Closures machen die Sache eben nicht einfacher.

Wenn ich Eigenschaften privat halten möchte und Accessormethoden definiere, dann kann ich das ja nur im Konstruktor tun. Das würde dazu führen, dass sich ein Teil der Methoden in diesem und ein anderer im Prototype-Objekt befindet. Das fände _ich_ schwerer zu lesen als alle Methoden an einer Stelle.

Wann man aber ohnehin sagt, dass man private nur durch Konvention (Unterstrichpräfix) auszeichnet, kann man natürlich alle dem Konstruktor übergebenden Parameter dort mit ins Objekt übernehmen (this.id = id; …) und kann so sämtliche Methoden ins Prototype-Objekt verlagern. In diesem Fall würde ich Dir mit der Lesbarkeit Recht geben.

Gruß
Olaf