Objektorientiertes programmieren mit Javascript. Kann man einfach neue Objekte erstellen?

...komplette Frage anzeigen

3 Antworten


Dort konnte man einfach ein Objekt(?!) erstellen diesen mit methoden und einem konstruktor füllen.

Nein, du sprichst von einer Klasse, nicht von einem Objekt. Eine Klasse ist ein Bauplan für ein Objekt. Eine Klasse legt fest, wie das Objekt zu Erstellen ist.


 was ich jetzt gelesen habe deutet darauf hin, dass man für jedes "auto" dass man erstellen will, alle Konstruktoren und Methoden neu schreiben muss. Ist das so,oder lese ich ein falsches Tutorial?

Entweder das, oder du verstehst es falsch. :p

Es gibt in JS verschiedene Möglichkeiten, das zu verhindern. Das new-Keyword & Konstruktorfunktionen wurde bereits vorgestellt. Du kannst es aber auch ganz primitiv lösen - wobei das letztlich auch nicht viel anders ist:

function erstelleAuto(farbe) {
    return {
        farbe: farbe,
    };
}

var auto1 = erstelleAuto('rot');
var auto2 = erstelleAuto('grün');

Das ist ja ein Unterschied zwischen Java und JS, du kannst einfach mit { } ein neues Objekt erstellen und dessen Eigenschaften festlegen.

Noch ein anderer Weg wäre der über Vererbung.

Antwort bewerten Vielen Dank für Deine Bewertung

Klassen kannst du in JavaScript mit dem function Keyword erstellen.
(Das class Keyword wurde erst mit ECMAScript6 eingeführt und dürfte noch nicht in allen gängigen Browsern integriert sein.)

function Auto(autoFarbe) {
  this.farbe= autoFarbe;
}

var auto1 = new Auto("rot");
console.log(
"Farbe von auto1 ist: " + auto1.farbe);
Antwort bewerten Vielen Dank für Deine Bewertung
yerooke 11.11.2015, 10:02

Hier noch eine Tabelle zu wieviel Prozent welcher Browser ECMAScript6 unterstützt. 

https://kangax.github.io/compat-table/es6/

Notfalls kannst du ECMASCRIPT6 die Klassen definieren und mit Traceur oder Babel in ECMASCRIPT5 umwandeln lassen.

0

Auch wenn es nichts zur Frage tut.

JavaScript ≠ Java.

Und es hat nichts mit einander zu tun.

Antwort bewerten Vielen Dank für Deine Bewertung
luiluilui2 10.11.2015, 23:55

Also muss man für jeded Objekt welches man erstellt den konstruktor und alle methoden neu erstellen??

0

Was möchtest Du wissen?