Es ist nicht möglich zu tun, was Sie wollen. Allerdings könnte man wie folgt vorgehen:
var objects = {
object1: {
property_1:'value_1'
},
object2: {
property_1:'value_2'
}
};
// Use this to get an array with the names
function getNames() {
return Object.keys(objects);
}
// Use this to get the properties of an object by it's given name
function getProps(name) {
return objects[name];
}
Ausführungsbeispiel:
var names = getNames();
for(i = 0; i < names.length; i++) {
var name = names[i];
var values = getProps(name);
console.log(name);
console.log(values);
console.log(values.property_1);
}
Ausgang:
object1
{property_1: "value_1"}
value_1
object2
{property_1: "value_2"}
value_2
All dies Erwägen Sie ES5 verwenden. Mit ES6 können Sie einfach die folgende tun, um eine Liste von Objektnamen und Eigenschaften zu erhalten:
Object.keys(objects).map(key => ({name: key, properties: objects[key]}))
Ich hoffe, das hilft Ihnen, in irgendeiner Art und Weise!
Dies ist nicht möglich. Objekte wissen nicht, welche Variablen sich auf sie beziehen. – Barmar
@Clonkex Er möchte keinen Eigenschaftsnamen, er möchte den Variablennamen. – Barmar
''object'' ist nicht der Name des Objekts. Es ist nur eine Variable, die zufällig das Objekt als Wert hat. Viele Variablen können den gleichen Wert haben, welcher ist ihr "Name"? – Barmar