Forum: PC-Programmierung Objektorientierung BEISPIEL Javascript


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Baeri B. (baeri)


Bewertung
0 lesenswert
nicht 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...

: Bearbeitet durch User
von TestX (Gast)


Bewertung
-3 lesenswert
nicht 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..).

von Baeri B. (baeri)


Bewertung
0 lesenswert
nicht lesenswert
Java hilft mir leider nichts...

und objektorientierung in c++ ist mir bereits geläuftig!
ich brauche eben Javascript! Kein PHP, kein Java...

von Joachim S. (oyo)


Bewertung
2 lesenswert
nicht 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

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
> Douglas Crockford

Ja, den kann ich auch empfehlen. Versuche alles in Dich aufzusaugen was 
Crockford je über Javascript gesagt und geschrieben hat, seine Webseite, 
seine Vorträge, alles. Dieser Mann ist die Referenz.

von js (Gast)


Bewertung
1 lesenswert
nicht 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
}

von Noch einer (Gast)


Bewertung
1 lesenswert
nicht 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.

von c.m. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Noch einer schrieb:
> Das GUI-Team hat mit dem
> Datenbestand nichts zu tun, benutzt nur die JSON-Strukturen.

stichwort: MVC
https://de.wikipedia.org/wiki/Model_View_Controller#JavaScript

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.