Текущее свойство объекта как значение в одном и том же объекте

Извините за такое случайное название, но понятия не имеет, как его лучше объяснить. И, следовательно, не знаю, является ли это дублирующим вопросом или нет.

Итак, при объявлении нового объекта я рассчитываю рассчитать значение giga:

var myObject = {
    super : 1,
    mega : 5,
    uber : 100,
    giga : this.super + this.mega + this.uber // super + mega + uber doesn't cut it either..
};

Но это не работает, поэтому, какие-либо способы сделать это при объявлении или невозможности?

Надеюсь, я прояснил и заблаговременно заблаговременно!

В Javascript 1.5 вы можете использовать ключевое слово get для определения getter

var obj = {
    super : 1,
    mega : 5,
    uber : 100,
    get giga() {
        return this.super + this.mega + this.uber;
    }
};

alert(obj.giga) // 106

подробнее об этом http://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/

5
ответ дан 07 нояб. '11 в 16:13
источник

Я предполагаю, что у вас есть действительно веская причина для необходимости сделать это inline, в противном случае обман - это не очень хорошая идея.

Вот что я придумал:

var myObject = (function(){
    this.giga = this.super + this.mega + this.uber;
    return this;
}).call({
    super : 1,
    mega : 5,
    uber : 100
});
4
ответ дан 07 нояб. '11 в 15:58
источник
var myObject = {
    super : 1,
    mega : 5,
    uber : 100
};
myObject.giga = myObject.super + myObject.mega + myObject.uber;
0
ответ дан 07 нояб. '11 в 16:02
источник