Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Prototypenbasierte Programmierung – Wikipedia
Prototypenbasierte Programmierung – Wikipedia
aus Wikipedia, der freien Enzyklopädie

Prototypenbasierte Programmierung, auch als klassenlose Objektorientierung bekannt, ist eine Form der objektorientierten Programmierung, die auf das Sprachelement der Klasse verzichtet. Objekte werden nicht durch Instanziierung einer Klasse, sondern durch Klonen bereits existierender Objekte erzeugt. Bei diesem Klonen werden alle Eigenschaften (Attribute und Methoden) des Prototyp-Objektes kopiert, sie können aber überschrieben werden, und das neue Objekt kann mit neuen Eigenschaften versehen werden.

Alle bestehenden Objekte können Prototypen neuer Objekte sein.

Einige Sprachen kopieren die Objekte beim Klonen vollständig und es bleibt keine Verbindung zwischen dem Klon und seinem Prototyp; die meisten prototypenbasierten Sprachen verwenden aber ein spezielles Attribut, über das eine Verbindung vom Klon zum Prototyp aufrechterhalten wird. Über diese Verbindung erben alle vom Prototyp geklonten Objekte auch nachträgliche Änderungen am Prototyp.

Die Objekte können als assoziatives Array verstanden werden; die Schlüssel dieser Tabelle werden für gewöhnlich Slot genannt, wobei meistens nicht zwischen Attributen (Daten) und Methoden (Operationen) des Objekts unterschieden wird: Methoden-Slots verweisen häufig nur auf außerhalb des Objektes liegenden Programmcode.

Vor- und Nachteile

[Bearbeiten | Quelltext bearbeiten]

Prototypenbasierte Sprachen erlauben eine größere Flexibilität bei der Modellierung, da sie den Programmierer nicht zwingen, seine Objekte in eine statische, zur Compilezeit festgelegte Klassenstruktur zu bringen. Objekte bleiben zur Laufzeit strukturell veränderbar. Diese Flexibilität beinhaltet aber auch das Risiko einer schlechteren Wartbarkeit des Programms.

Viele Optimierungen, die der Compiler in klassenbasierten Sprachen bereits zum Zeitpunkt der Übersetzung vornehmen kann, lassen sich aufgrund der dynamischen Natur von prototypenbasierten Sprachen bei diesen nicht realisieren.

Beispiel

[Bearbeiten | Quelltext bearbeiten]

Das folgende Beispiel in ECMAScript 5 erzeugt zuerst ein Objekt object1, das wir danach als Prototyp verwenden werden. Es hat die Attribute a und b, denen auch gleich die Werte 1 bzw. 2 zugeordnet werden.

var object1 = { a : 1, b : 2 };

Zum Klonen gibt es in ECMAScript 5 eine vordefinierte Funktion Object.create(). Der gewünschte Prototyp wird als Argument angegeben. Dieser Klon erhält im Beispiel den Namen object2.

var object2 = Object.create( object1 );

Diesem neuen Objekt können nun weitere Attribute zugeordnet werden

object2.c = 3;
object2.d = 4;

Das geklonte Objekt hat nun vier Attribute:

  • a = 1 (vom Prototyp geerbt)
  • b = 2 (vom Prototyp geerbt)
  • c = 3 (nach dem Klonen hinzufügt)
  • d = 4 (nach dem Klonen hinzufügt)

Liste prototypenbasierter Programmiersprachen

[Bearbeiten | Quelltext bearbeiten]
  • Self
  • ECMAScript
    • JavaScript
    • ActionScript (seit AS3 zunehmend klassenorientiert)
  • Io
  • Lua
  • REBOL
  • NewtonScript
  • Snap! (BYOB) – als bisher einzige bildungsorientierte visuelle Programmiersprache dieser Auflistung
  • SimTalk

Im Prinzip lässt sich in jeder Programmiersprache, die Zeiger unterstützt, prototypenbasiert programmieren. Für Ruby und Perl existieren vorgefertigte Module, die dies unterstützen.

Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Prototypenbasierte_Programmierung&oldid=255922404“
Kategorien:
  • Programmierparadigma
  • Objektorientierte Programmierung
  • JavaScript

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id