Как определить сеттер / геттер по прототипу

EDIT Oct 2016Обратите внимание, что этот вопрос был задан в 2012 году. Каждый месяц или около того кто-то добавляет новый ответ или комментарий, который опровергает ответ, но на самом деле это не имеет смысла, поскольку вопрос, вероятно, устарел (помните, что это было дляGnome Javascript писать расширения оболочки gnome, а не вещи браузера, что довольно специфично).

Следующиймой предыдущий вопрос о том, как сделать подклассы в Javascript, я делаю подкласс суперкласса так:

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.

Мой вопросhow do I define a setter/getter on the prototype with this syntax?

Обычно я делал:

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

    get myProperty() {
        // code.
    }
}

Но очевидно, что следующее не сработает:

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

Я использую GJS (GNOME Javascript), и предполагается, что этот движок более или менее такой же, как и Mozilla Spidermonkey. Мой код не предназначен для браузера, поэтому, пока он поддерживается GJS (я полагаю, что это означает Spidermonkey?), Я не возражаю, если он не является кросс-совместимым.

Ответы на вопрос(5)

Ваш ответ на вопрос