Ich versuche, einen Getter für mein Objekt zu definieren. Ich möchte aber auch auf eine Eigenschaft dieses Setter zeigen können.Getter/Setter mit defineProperty
Beispiel Objekt:
var obj = {
weight: 14
};
Jetzt möchte ich eine Funktion erstellen, die dieses Objekt erstreckt sich so, wenn es klassisch als obj.weight
genannt wird, ‚14‘ zurückgegeben. Aber ich möchte auch die Möglichkeit haben, obj.weight.unit
anzurufen und dafür 'Kilogramme' zu bekommen.
Dies ist, was ich zu tun versucht:
Object.defineProperty(obj, 'weight', {
get: function() {
return obj.weight;
},
'unit': 'Kilograms'
});
Erste das Gewicht funktioniert, aber die Gewichtseinheit immer nicht funktioniert. Auch wenn ich versuche, den Kontext von "obj" in der Konsole zu sehen, zeigt es einfach nicht "unit" an, als ob es nicht existiert.
Mit dem, was Syntax wollen Sie das Gerät bekommen? 'obj.weight.unit'? 'obj.unit'? –
Was Sie versuchen, ist unmöglich. Ein Wert kann nicht sowohl eine Zahl als auch ein Objekt mit einer 'Einheit'-Eigenschaft sein. – Bergi