Murphy: new Object(x) statt object(x)

Beitrag lesen

A Prototypal system? Ich kann im Netz keine anderen Repräsentaten prototypischer Vererbung finden, deren Vorgabe hätten vermurkst werden können.

Gibts eine Norm was "echte" prototypische Vererbung sein könnte?

Ist damit Self gemeint? http://de.wikipedia.org/wiki/Self_(Programmiersprache)

Naja, außer Self gibt es noch ein paar andere Sprachen, die recht puristisch die prototypische Vererbung verfolgen. Zum Beispiel Io http://iolanguage.com/ und, soweit ich weiß, Lisaac http://isaacproject.u-strasbg.fr/li.html. Aber verbreitet sind prototypenbasierte Sprachen eigentlich nicht. Das Konzept ist wohl gerade nicht in Mode :-)

Verstehe ich das richtig, dass "echte" prototypische Sprachen im Gegensatz zu JS kein "new" haben um aus Konstruktoren Instanzen abzuleiten und deswegen keine zwei Formen von Objekten existieren?

Crockford wohl, dass eine prototypenbasierte Sprache außer einer Klonierungsoperation keinen weiteren Schnickschnack benötigt um Vererbung zu unterstützen.

Es existiert auch bei JavaScript streng genommen nur eine Form von Objekt. Ok, die Werte undefined und null sind etwas besonderes, weil sie eigentlich keine Objekte sind. Booleans, Zahlen und Strings können zwar als Objekte agieren, werden aber gelegentlich auch in primitiverer Maschinenrepräsentation herumübergeben, wobei dann benutzerdefinierte Eigenschaften nicht mitgenommen werden (z.B.: var n = new Number(42); n.foo = "bar"; alert(n.foo); n = n + 0; alert(n.foo);). Und manchmal nehmen auch andere Objekte eine Sonderstellung in der Implementation der Skriptengines ein. Aber im Prinzip sind alle Objekte gleichwertig.

Bei JavaScriptCore zum Beispiel macht selbst die C-API keinen Unterschied zwischen Funktionen / Konstruktoren, Arrays oder anderen Objekten.

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