So definieren Sie Setter / Getter für einen Prototyp

BEARBEITEN Oktober 2016: Bitte beachten Sie, dass diese Frage im Jahr 2012 gestellt wurde. Jeden Monat oder so fügt jemand eine neue Antwort oder einen Kommentar hinzu, der eine Antwort ablehnt, dies jedoch nicht wirklich sinnvoll ist, da die Frage wahrscheinlich veraltet ist (denken Sie daran, es war fürGnome Javascript gnome-shell-erweiterungen schreiben, keine browser-sachen (was ziemlich spezifisch ist).

Im Anschlussmeine vorherige Frage Zum Erstellen von Unterklassen in Javascript erstelle ich eine Unterklasse aus einer Superklasse wie folgt:

function inherits(Child,Parent) {
    var Tmp = function {};
    Tmp.prototype = Parent.prototype;
    Child.prototype = new Tmp();
    Child.prototype.constructor = Child;
}
/* Define subclass */
function Subclass() {
    Superclass.apply(this,arguments);
    /* other initialisation */
}
/* Set up inheritance */
inherits(Subclass,Superclass);
/* Add other methods */
Subclass.prototype.method1 = function ... // and so on.

Meine Frage ist,Wie definiere ich mit dieser Syntax einen Setter / Getter auf dem Prototyp?

Ich habe gemacht:

Subclass.prototype = {
    __proto__: Superclass.prototype,
    /* other methods here ... */

    get myProperty() {
        // code.
    }
}

Aber offensichtlich wird das Folgende nicht funktionieren:

Subclass.prototype.get myProperty() { /* code */ }

Ich verwende GJS (GNOME Javascript) und die Engine soll mehr oder weniger mit der von Mozilla Spidermonkey identisch sein. Mein Code ist nicht für einen Browser gedacht, solange er von GJS unterstützt wird (ich denke, das bedeutet Spidermonkey?). Es macht mir nichts aus, wenn er nicht kompatibel ist.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage