Kurt Z: Vererbungshierarchie ?!?

Beitrag lesen

Hallo Don,

Mir persönlich (und auch ihm) gefällt inzwischen der weitgehende Verzicht auf Konstruktoren besser, wie in seinem Artikel Prototypal Inheritance in JavaScript beschrieben.

Danke für den Link, das befreit mich jetzt von dem Missverständnis JS wäre eine typische prototyp-basierte Sprache. Ich konnte bisher die Abgrenzung zu Klassen-basierten Sprachen nicht ganz nachvollziehen.[1]

Allerdings, eines stört mich an dieser object() Vererbungsfunktion...

var object = function(o){function F(){}F.prototype=o;return new F();};

... wo bleibt dann der Konstruktor für lokale Variablen der Instanz (this.bla usw...)? (da fehlt ein Semikolon oder?)  
  
oder gibts auch ne art 2 parametrige Version?  
(ungetestet)  
~~~javascript
  
var object = function(o,F){  
     if (! F) function F(){};  
     F.prototype=o;  
     return new F();  
};  

So kann man wirklich weitestgehend auf new und prototype verzichten, function und this wird man aber trotzdem zumindest für Methoden brauchen.

Ciao
 Kurt

[1] naja von Perl bin ich auch ein verwirrend vielfältiges Objektsystem, sowie Closures und Coderefrenzen gewohnt, die man braucht man in JS um javaartige Klassen abzubilden.

0 67

Vererbungshierarchie ?!?

Kurt Z
  • javascript
  1. 0
    Struppi
    1. 0
      molily
    2. 0
      Don P
      1. 0
        Kurt Z
        1. 0
          Struppi
          1. 0
            Don P
            1. 0
              Struppi
              1. 0
                Don P
                1. 0
                  Struppi
                  1. 0
                    Don P
                    1. 0
                      Struppi
                      1. 0
                        Don P
                        1. 0
                          Struppi
                          1. 0
                            Don P
                      2. 0
                        Kurt Z
                        1. 0
                          Struppi
                          1. 0
                            Kurt Z
                            1. 0
                              Struppi
                              1. 0
                                Kurt Z
                                1. 0
                                  Struppi
                                  1. 0
                                    Kurt Z
                                    1. 0
                                      LanX²
                                    2. 0
                                      Struppi
                                      1. 0
                                        Kurt Z
                                        1. 0
                                          Kurt Z
                                        2. 0
                                          Struppi
                                          1. 0
                                            Kurt Z
                              2. 0
                                Don P
              2. 0
                LanX²
                1. 0

                  Function.prototype.begetObject

                  LanX²
                  1. 0
                    Don P
                    1. 0

                      Knobelaufgabe

                      LanX²
                      1. 0
                        Don P
                    2. 0
                      molily
                      1. 0
                        Kurt Z
                        1. 0

                          Please beget it!

                          LanX²
                          1. 0
                            Kurt Z
                          2. 0
                            Don P
                            1. 0
                              LanX²
                              1. 0
                                Don P
                              2. 0

                                Iterator

                                KurtZ
                                1. 0
                                  LanX
                      2. 0
                        Don P
        2. 0

          new Object(x) statt object(x)

          Kurt Z
          1. 0
            Murphy
            1. 0
              Kurt Z
              1. 0
                Don P
              2. 0
                Murphy
                1. 0
                  Kurt Z
                2. 0
                  molily
  2. 0
    LanX²
  3. 0
    molily
  4. 3

    __proto__ chain

    LanX²
    1. 0
      LanX²
      1. 0
        Kurt Z
    2. 1
      molily
  5. 0

    JS-Version?

    Kurt Z
    1. 0
      Kurt Z
      1. 0
        molily
        1. 0
          molily
    2. 0
      molily
      1. 0
        Kurt Z
        1. 0
          molily
          1. 0
            Kurt Z
  6. 0

    VIELEN DANK!!!

    Kurt Z
    1. 0
      Struppi