Inheritance - Object.setPrototypeOf()

  • Laut Mozilla MDN soll zur Vererbung zweier Objekte folgendes funktionieren:

    function a () {.......}

    function b () {

    a.call(this,[args]);

    ......}

    Object.setPrototypeOf(b.prototype, a.prototype); //a soll an b vererben.

    Im JS Code - Editor wird bei Eingabe von Object sogar die Methode setPrototypeOf() zur Auswahl angezeigt.

    Bei der Code- Ausführung erhalte ich jedoch den Error:

    Error: Cannot find function setPrototypeOf in object function Object() { [native code for Object.Object, arity=1] }

    Für jeglichen Hinweis auf die Fehlerquelle und Korrektur dankbar!

  • volker.trotte

    Herzlichsten Dank für die sonntägliche Mühe.

    Ich bringe Ihre Vermutung (so etwas in diese Richtung hatte ich mir auch gedacht, ohne es beurteilen zu können - letzte beherrschte Programmiersprache war LISP -) nicht in Einklang mit dem Umstand, dass im Editor die Syntax OBJECT.setPrototypeOf angezeigt wird.

    Dann müsste der Editor eine andere Grundlage haben als der Interpreter.

    Ich konnte es mit der Library _lodash hilfsweise lösen, aber grundsätzlich sollte die im Editor angezeigte native Syntax ja auch funktionieren.

    MfG dmsrostra

  • dmsrostra

    Ich tippe darauf, dass der seit neuestem verwendete "Monaco"-Editor bei seinen Syntaxvorschlägen für das "Object" (nicht mit common/objects verwechseln) die momentan gültige ES6-Syntax zur Grundlage nimmt.

    Da "Object" generischer Teil von Javascript und nicht agorum spezifisch ist und der Monaco Editor für gewöhnlich für die Entwicklung moderner Webanwendung in aktuellen Browsern und mit einer aktuellen JS-Version entwickelt wird, unterscheiden sich in diesem Fall tatsächlich Editor (Monaco) und Interpreter (RhinoJS) voneinander.

Jetzt Teil von agorum Community werden!

Noch kein Benutzerkonto? Registriere dich kostenlos und werde Teil von agorum Community!