Skip to content

Enhanced Object Literals

Wenn eine Eigenschaft genauso heißt wie der ihr zugewiesene Wert, kann der Zuweisungsteil : value einfach weggelassen werden.

// Aus irgendeinem Grund existiert diese Variable schon:
const catName = 'Pedro';
// Jetzt wird ein Objekt erstellt, das diese Variable verwendet:
const myCat = {
catName: catName,
};
// doppelt gemoppelt, wir streichen den Zuweisungsteil
// (den JavaScript unter der Haube wieder ergänzt):
const myCat = {
catName,
}

Wenn eine Methode deklariert wird, muss ein Funktionsausdruck geschrieben werden. Bei der Kurzfassung kann der : function Teil weggelassen werden.

// Funktionsausdruck
const myCat = {
purrMyName: function () {
console.log('Mrrrrrow Pedro!');
}
}
// Kurzform ohne : function
const myCat = {
purrMyName() {
console.log('Mrrrrrow Pedro!');
}
};

Worum geht’s hier? Ein Ausdruck (der erst evaluiert werden muss), wird als Eigenschaft verwendet. Erklärung hier
(Braucht man lt. Axel nur, wenn man … keine eigene Klasse definieren will oder so … also im Moment noch völlig uninteressant.)

const obj = {};
const property = 'name';
obj[property] = 'Pedro';
// Computed object property names lets you create objects with
// variables as property keys. To do so, wrap the property with
// square brackets (dynamic variables).
const cat = {
[property]: 'Pedro',
};
console.log(cat.name); // Pedro
// changing the property while creating it:
const cat = {
[property]: 'Pedro',
['full' + property]: 'Pedro R.',
};
console.log(cat.fullname); // Pedro R.