<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>javascript.de</title>
    <link>http://www.javascript.de/</link>
    <description>Deutsches JavaScript-Portal</description>
    <copyright>PULSAR interactive media GmbH</copyright>
    <lastBuildDate>Wed, 13 Apr 2005 14:43:32 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.7.5016.2</generator>
    <managingEditor>tb@pim.de</managingEditor>
    <webMaster>tb@pim.de</webMaster>
    <item>
      <trackback:ping>http://www.javascript.de/Trackback,guid,3fb3a370-7264-4af6-822c-d60fa4c9908d.aspx</trackback:ping>
      <pingback:server>http://www.javascript.de/pingback.aspx</pingback:server>
      <pingback:target>http://www.javascript.de/PermaLink,guid,3fb3a370-7264-4af6-822c-d60fa4c9908d.aspx</pingback:target>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
      Jedes <code>Function</code>-Objekt verfügt über eine <code>prototype</code>-Eigenschaft.
      Diese ist von besonderer Bedeutung, wenn die Funktion genutzt wird, um neue Objekte
      zu initialisieren (siehe Konstruktor). Die <code>prototype</code>-Eigenschaft definiert
      in diesem Falle gemeinsame Eigenschaften aller Objekte, die mit dem Konstruktor erstellt
      werden. Man spricht von Prototyp-basierter Vererbung. Auf diese Weise ermöglicht JavaScript
      mehrstufige Vererbung:
   </p>
        <p>
      Konstruktor eines Prototyps erstellen:
   </p>
        <pre>function Kraftfahrzeug (Fabrikat) {
   this.Fabrikat = Fabrikat;
   this.Beispieleigenschaft = "Beispielwert";
}
</pre>
        <p>
      Konstruktor des abgeleiteten Prototyps erstellen:
   </p>
        <pre>function PKW (Fabrikat) {
   this.constructor(Fabrikat);
   this.weitereEigenschaft = "Beispielwert";
}
PKW.prototype = new Kraftfahrzeug();
</pre>
        <p>
      Eine neue Instanz des allgemeinen Prototyps dient als Muster des abgeleiteten Prototyps.
      Dadurch werden die Eigenschaften des allgemeinen Prototyps an den abgeleiteten Prototyp
      vererbt: Jedes PKW-Objekt ist gleichzeitig ein Kraftfahrzeug-Objekt. Über <code>this.constructor</code> kann
      im PKW-Konstruktor der Kraftfahrzeug-Konstruktor angesprochen werden. Dies wird im
      Beispiel dazu genutzt, die Parameter an letztgenannten weiterzugeben. So muss <code>this.Fabrikat
      = Fabrikat;</code> nur im Kraftfahrzeug-Konstruktor notiert sein.
   </p>
        <p>
      Instanz des Prototyps <code>PKW</code> erstellen:
   </p>
        <pre>var Golf = new PKW("Volkswagen Golf");
var Ente = new PKW("Citroen 2CV");
</pre>
        <p>
      Über die <code>prototype</code>-Eigenschaft der Konstruktorfunktion können einem Prototyp
      auch nachträglich Eigenschaften und Methoden hinzugefügt werden. Diese Änderungen
      wirken sich auf alle davon abgeleiteten Objekte aus:
   </p>
        <pre>PKW.prototype.Radanzahl = 4;
PKW.prototype.zeigeRadanzahl = function () {
   window.alert(this.Name + " hat " + this.Radanzahl + " Räder.");
};
Golf.zeigeRadanzahl(); // Volkswagen Golf hat 4 Räder.
Ente.zeigeRadanzahl(); // Citroen 2CV hat 4 Räder.
</pre>
        <p>
      Eine nützliche Methode des <code>Object</code>-Prototyps ist <code>hasOwnProperty(Eigenschaftsname)</code>.
      Sie gibt einen booleschen Wert, also <code>true</code> oder <code>false</code> zurück.
      Dadurch lässt sich ermitteln, ob eine bestimmte Eigenschaft durch dessen Konstruktor
      selbst oder durch seine Prototyp-Kette definiert wird. Im Beispiel ergibt <code>Golf.hasOwnProperty("Radanzahl")</code><code>false</code>,
      ebenso wie <code>Golf.hasOwnProperty("zeigeRadanzahl")</code>. Beide Eigenschaften
      wurden nachträglich über <code>PKW.prototype</code> hinzugefügt. <code>Golf.hasOwnProperty("Fabrikat")</code> und <code>Golf.hasOwnProperty("weitereEigenschaft")</code> hingegen
      ergeben <code>true</code>, weil diese Eigenschaften durch die Konstruktoren <code>Kraftfahrzeug</code> und <code>PKW</code> belegt
      wurden.
   </p>
        <p>
          <em>Quelle: </em>
          <a href="http://www.wikipedia.org/">www.wikipedia.org</a>
        </p>
      </body>
      <title>Vererbung (prototype-Eigenschaft)</title>
      <guid>http://www.javascript.de/PermaLink,guid,3fb3a370-7264-4af6-822c-d60fa4c9908d.aspx</guid>
      <link>http://www.javascript.de/VererbungPrototypeEigenschaft.aspx</link>
      <pubDate>Wed, 13 Apr 2005 14:43:32 GMT</pubDate>
      <description>&lt;p&gt;
   Jedes &lt;code&gt;Function&lt;/code&gt;-Objekt verfügt über eine &lt;code&gt;prototype&lt;/code&gt;-Eigenschaft.
   Diese ist von besonderer Bedeutung, wenn die Funktion genutzt wird, um neue Objekte
   zu initialisieren (siehe Konstruktor). Die &lt;code&gt;prototype&lt;/code&gt;-Eigenschaft definiert
   in diesem Falle gemeinsame Eigenschaften aller Objekte, die mit dem Konstruktor erstellt
   werden. Man spricht von Prototyp-basierter Vererbung. Auf diese Weise ermöglicht JavaScript
   mehrstufige Vererbung:
&lt;/p&gt;
&lt;p&gt;
   Konstruktor eines Prototyps erstellen:
&lt;/p&gt;
&lt;pre&gt;function Kraftfahrzeug (Fabrikat) {
   this.Fabrikat = Fabrikat;
   this.Beispieleigenschaft = "Beispielwert";
}
&lt;/pre&gt;
&lt;p&gt;
   Konstruktor des abgeleiteten Prototyps erstellen:
&lt;/p&gt;
&lt;pre&gt;function PKW (Fabrikat) {
   this.constructor(Fabrikat);
   this.weitereEigenschaft = "Beispielwert";
}
PKW.prototype = new Kraftfahrzeug();
&lt;/pre&gt;
&lt;p&gt;
   Eine neue Instanz des allgemeinen Prototyps dient als Muster des abgeleiteten Prototyps.
   Dadurch werden die Eigenschaften des allgemeinen Prototyps an den abgeleiteten Prototyp
   vererbt: Jedes PKW-Objekt ist gleichzeitig ein Kraftfahrzeug-Objekt. Über &lt;code&gt;this.constructor&lt;/code&gt; kann
   im PKW-Konstruktor der Kraftfahrzeug-Konstruktor angesprochen werden. Dies wird im
   Beispiel dazu genutzt, die Parameter an letztgenannten weiterzugeben. So muss &lt;code&gt;this.Fabrikat
   = Fabrikat;&lt;/code&gt; nur im Kraftfahrzeug-Konstruktor notiert sein.
&lt;/p&gt;
&lt;p&gt;
   Instanz des Prototyps &lt;code&gt;PKW&lt;/code&gt; erstellen:
&lt;/p&gt;
&lt;pre&gt;var Golf = new PKW("Volkswagen Golf");
var Ente = new PKW("Citroen 2CV");
&lt;/pre&gt;
&lt;p&gt;
   Über die &lt;code&gt;prototype&lt;/code&gt;-Eigenschaft der Konstruktorfunktion können einem Prototyp
   auch nachträglich Eigenschaften und Methoden hinzugefügt werden. Diese Änderungen
   wirken sich auf alle davon abgeleiteten Objekte aus:
&lt;/p&gt;
&lt;pre&gt;PKW.prototype.Radanzahl = 4;
PKW.prototype.zeigeRadanzahl = function () {
   window.alert(this.Name + " hat " + this.Radanzahl + " Räder.");
};
Golf.zeigeRadanzahl(); // Volkswagen Golf hat 4 Räder.
Ente.zeigeRadanzahl(); // Citroen 2CV hat 4 Räder.
&lt;/pre&gt;
&lt;p&gt;
   Eine nützliche Methode des &lt;code&gt;Object&lt;/code&gt;-Prototyps ist &lt;code&gt;hasOwnProperty(Eigenschaftsname)&lt;/code&gt;.
   Sie gibt einen booleschen Wert, also &lt;code&gt;true&lt;/code&gt; oder &lt;code&gt;false&lt;/code&gt; zurück.
   Dadurch lässt sich ermitteln, ob eine bestimmte Eigenschaft durch dessen Konstruktor
   selbst oder durch seine Prototyp-Kette definiert wird. Im Beispiel ergibt &lt;code&gt;Golf.hasOwnProperty("Radanzahl")&lt;/code&gt; &lt;code&gt;false&lt;/code&gt;,
   ebenso wie &lt;code&gt;Golf.hasOwnProperty("zeigeRadanzahl")&lt;/code&gt;. Beide Eigenschaften
   wurden nachträglich über &lt;code&gt;PKW.prototype&lt;/code&gt; hinzugefügt. &lt;code&gt;Golf.hasOwnProperty("Fabrikat")&lt;/code&gt; und &lt;code&gt;Golf.hasOwnProperty("weitereEigenschaft")&lt;/code&gt; hingegen
   ergeben &lt;code&gt;true&lt;/code&gt;, weil diese Eigenschaften durch die Konstruktoren &lt;code&gt;Kraftfahrzeug&lt;/code&gt; und &lt;code&gt;PKW&lt;/code&gt; belegt
   wurden.
&lt;/p&gt;
&lt;p&gt;
   &lt;em&gt;Quelle: &lt;/em&gt;&lt;a href="http://www.wikipedia.org/"&gt;www.wikipedia.org&lt;/a&gt;
&lt;/p&gt;</description>
      <category>Die Sprache|5 - Vererbung</category>
    </item>
  </channel>
</rss>