const value = 1 + 1 * 1;
var a = {
b: value,
b1: value
}
Вопрос возник из-за чего: некрасиво как-то в коде выглядит повтор, или не хочется одну строку добавить, как предложил dollar ? Или есть задача обработки назначаемых данных – видели сеттеры / геттеры?
// хочется так? (но нельзя!)
var a = {
b: 1,
c: this.b * 10
}
// тогда можно так:
var a = {
get c() { return this.b * 10; }
}
a.b = 1;
a.c // 10
ivandao, вы только что нарушили сразу два правила на Тостере. Во-первых, это отдельный вопрос, и во вторых, ответ на learn.javascript.ru у авторов того ресурса.
var a = {
b : 1,
b1 : "this.b",
};
Prepare(a);
function Prepare(o) {
for(let k in o) {
if (typeof o[k] !== 'string') continue;
if (o[k].substr(0,5) !== 'this.') continue;
let key = o[k].substr(5);
o[k] = o[key];
}
}
Владимир, в каком смысле? Ну то есть ясно, что так никто не делает в здравом уме. Но если очень хочется, то чем это поддерживаемости повредит? Добавить рекурсию по вложенности свойств - и будет на века. А то что там циклические ссылки могут быть, так это проблема другого рода.