BEARBEITEN Okt. 2016 : Bitte beachten Sie, dass diese Frage im Jahr 2012 gestellt wurde. Jeden Monat fügt jemand eine neue Antwort oder einen neuen Kommentar hinzu, der eine Antwort widerlegt, aber dies ist nicht wirklich sinnvoll, da die Frage wahrscheinlich veraltet ist (denken Sie daran, Es war Sache von Gnome Javascript , Gnome-Shell-Erweiterungen zu schreiben, keine Browser-Inhalte (was ziemlich spezifisch ist).
Nach meiner vorherigen Frage zur Durchführung von Unterklassen in Javascript erstelle ich eine Unterklasse aus einer Oberklasse 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?
Früher habe ich gemacht:
Subclass.prototype = {
__proto__: Superclass.prototype,
/* other methods here ... */
get myProperty() {
// code.
}
}
Aber offensichtlich funktioniert Folgendes nicht:
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 kreuzkompatibel ist.
__defineGetter__
und__defineSetter
(aber ich habe diese nie benutzt ...). developer.mozilla.org/en/Core_JavaScript_1.5_Guide/…