2017-11-15 3 views
4

ich so etwas wie dies tun will:inlining Ausbreitung Betreiber bei der Deklaration ES7

const translations = { 
    en: { 
     statistics_title: 'Statistics' 
    }, 
    ru: { 
     statistics_title: 'Статистика' 
    }, 
    uk: { 
     ...ru 
    } 
} 

offensichtlich funktioniert es nicht, natürlich kann ich eine andere const gesetzt, und dann verwenden, aber ich bin faul) also bin ich neugierig, ob Javascript das erlaubt?

+0

Nein, Sie können das nicht tun, wenn das Objekt noch nicht existiert. – George

+0

Spread-Eigenschaften sind nicht Teil von ES6. –

Antwort

1

Sie können sich in Objekten nicht selbst referenzieren, es sei denn, es handelt sich um eine Methode.

Sie könnten tun:

const translations = { 
    en: { 
     statistics_title: 'Statistics' 
    }, 
    ru: { 
     statistics_title: 'Статистика' 
    }, 
    get uk() { 
     return this.ru 
    } 
} 

bearbeiten

Wenn Sie translations.uk beabsichtigen, wollen nicht eine Kopie von ru zu sein und halten es eigene Daten ist auf diese Weise nicht funktionieren. Dies stellt nur bis translations.uk als Hinweis auf translations.ru

1

Sie haben diesen ru Wert zu erklären, bevor die Verbreitung, d.h .:

const ru = { 
    statistics_title: 'Статистика' 
}; 

const translations = { 
    en: { 
     statistics_title: 'Statistics' 
    }, 
    ru, 
    uk: { 
     ...ru 
    } 
}; 
+0

danke, Getter macht sehr viel Sinn, da du es nach der Instantiierung des Objekts nennst. –