Objektorientierung BEISPIEL Javascript

OP #4939780
Lesenswert?

Hallo,

ich suche in Javascript nach einer Hierachie (Objektorientier)

ich möchte mit Funktionen mir eine "Datenbasis" erstellen (zum üben, 
verändern, basteln...)

das für mich gesetzte Ziel ist es eine kleine Firma abzubilden, leider 
habe ich keine passendes todo online gefunden (evtl. hat jemand einen 
Link)


1
var firma = new company()
2

3
firma.addChief("Müller");
4
firma.addChief("Maier");
5

6
firma.addHeadofDepart( ??zu Müller??, Abteilungleister )
7

8
firma.addStaff( ??zu müller??, zu Abteilungleister, Mitarbeiter )
so... "in etwa" will ich das befüllen...

ziel ist es über
console.log( firma )
dann eine Objektstruktur zurückzubekommen...

> leider habe ich das mit den Prototypen noch nicht so richtig verstanden... die 
Beispiele die ich gefunden habe, befassen sich dann immer nur mit einem Datensatz 
und ich brauch dann "pro" Mitarbeiter eine "eigene Firma" ... <- das ist ja nicht 
Sinn der Sache...

Vielen Dank für die Hilfe...
Gast #4939782
Lesenswert?

Beschäftige dich erstmal mit den Grundlagen der objektorientierten 
Programmierung - und nimm hierfür NICHT Javascript. Zum Lernen ist Java 
o.ä. wesentlich besser geeignet.

Javascript konnte bisher keine richtiges OOP mit Vererbung etc 
umsetzen..dazu brauchte man externe Frameworks. MIt ECMA6 hat sich das 
ein wenig geändert allerdings sollte man damit nicht anfangen, da es 
viel zu viele Fallstricke gibt (ich arbeite seit > 15 Jahren damit..).
#4939912
Lesenswert?

Eines der besten Bücher die ich zu Javascript kenne, ist "Javascript: 
The good parts" von Douglas Crockford, u.A. deshalb, weil es extrem 
knapp ist und sich auf das wesentliche beschränkt.

Dieses Buch gibt es mittlerweile offenbar kostenlos im Netz, und in dem 
darin enthaltenen, gerade mal kurze 12 Seiten langen Kapitel über 
Vererbung werden fünf verschiedene Möglichkeiten erklärt, 
Klassen/Vererbung in Javascript zu nutzen.

Ein weiteres, gerade mal sechs Seiten langes Kapitel erklärt alles 
wichtige zu Objekten in Javascript.

http://bdcampbell.net/javascript/book/javascript_the_good_parts.pdf#G10.342139
Gast #4941381
Lesenswert?

Es ist leider nicht ganz klar wie deine Datenstruktur aussehen soll
und wieso du dafuer eine OO-Klassenhierarchie brauchst.

JS mit den Objekten und Properties ist fuer Daten bereits OO light.

Schau dir mal JSON an:

https://www.w3schools.com/js/js_json_intro.asp

Und falls du wirkliche Datenbank Funktionalitaet brauchst, nimm eine 
Datenbank.

Trotzdem ein Beispiel mit Klassen:
1
"use strict";
2

3
function company() {
4
    this.chiefs = [];
5
    this.staffs = [];
6
}
7

8
company.prototype.addChief = function( chief ) {
9
    this.chiefs.push( chief );
10
}
11

12
company.prototype.addStaff = function( chief, staff ) {
13
    this.staffs.push( {"chief":chief, "staff":staff} );
14
}
15

16
function testFirma() {
17
    var firma = new company();
18
    firma.addChief("Chief1");
19
    firma.addChief("Chief2");
20
    firma.addStaff("Chief1", "Staff1");
21
    firma.addStaff("Chief2", "Staff2");
22
    console.log( JSON.stringify(firma) );
23
}
Gast #4941767
Lesenswert?

> eine Datenbasis

Das Problem ist das Wort "eine".

In der Realität kommst du nicht mit einer Struktur aus. Vertrieb, 
Buchhaltung, Lagerverwaltung, Konstruktion, Produktion... alle arbeiten 
auf der selben Datenbasis, haben aber unterschiedliche Objektstrukturen.

Du brauchst eine Datenbasis, aus der sich beliebige Strukturen 
zusammensetzen lassen. In beide Richtungen, sowohl lesen als auch beim 
schreiben persistenter Daten.

Javascript wird ja in Bereichen eingesetzt, wo du irgendwas mit 
Client-Server zu tun hast. Wie "js" oben schon erwähnte: Das Server-Team 
setzt aus dem Datenbestand JSON zusammen. Das GUI-Team hat mit dem 
Datenbestand nichts zu tun, benutzt nur die JSON-Strukturen.

Diese klassischen C-Beispiele findest du beim Javascript nicht mehr, 
weil so etwas triviales in Javascript nicht gemacht wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren