OLOO Musterklärung

8

Ich studiere noch, habe aber in letzter Zeit das Feld, in dem ich arbeiten möchte, in die Webentwicklung geändert. Also Programmierung ist nichts Neues für mich, aber ich habe nie wirklich zweimal auf Javascript geschaut.

Ich versuche schnell zu lernen, aber ich war verwirrt über die verschiedenen Vererbungsmuster, die in Javascript verwendet werden. Ich habe nach der klassischen Prototypkette gesucht, in der der Prototyreferenzpunkt vom Programmierer gesetzt wird (ich denke, das wird üblicherweise als Prototypmuster bezeichnet). Dann las ich viele Blogs und Artikel über OLOO und seine Vorteile in Bezug auf Einfachheit.

Also habe ich selbst versucht, ein kleines Sample zu programmieren und während ich nach einem guten Ansatz gesucht habe, habe ich einen Code gefunden, den ich nicht wirklich in diese beiden Kategorien einordnen kann.

Ich habe eine Geige gemacht, wenn man einen Blick darauf werfen will: Ссылка

Für jeden anderen ist das im Grunde mein Code:

%Vor%

Hoffentlich kann jemand klären, was ich hier gemacht habe und welche Nachteile ich mit dieser Methode haben werde. Ich weiß, dass es nicht OLOO sein kann, weil OLOO auf einem einfachen Object.create(...); beruht um neue Objekte zu erstellen.

EDIT: Link zu Geige war kaputt, sorry

    
swent 29.10.2015, 21:02
quelle

1 Antwort

6

Was Sie tun, ist etwas wie ein Mixin-Muster. Du erschaffst ein neues Parent -Objekt, dann teilst du es teilweise in das Child -Objekt ein, was die Idee hinter einem Mixin ist.

Hier sind einige Referenzen zu Mixins:

Ein frischer Blick auf Javascript Mixins

Das Mixin-Muster

JavaScript Mixins: Über Simple Object ExtensionPosted

Hier sind einige Nachteile von dem, was Sie tun:

  1. Sie erstellen eine Parent -Instanz, kopieren daraus und werfen sie dann weg.
  2. Alle Methoden in Parent.prototype werden nicht vererbt
  3. instanceof Parent wird nicht unterstützt
  4. instanceof Child wird nicht unterstützt

Object.assign() kopiert nur aufzählbare, eigene Eigenschaften, so dass es nicht den gesamten Status eines Parent -Objekts kopiert, daher kann es nur in diesem Fall verwendet werden, wenn Sie explizit wissen, dass das übergeordnete Objekt keines der Objekte besitzt Dinge, die nicht kopiert werden.

    
jfriend00 29.10.2015, 21:35
quelle

Tags und Links