Как я могу дать объекту динамическое имя свойства?
Вот собственно объект:
let obj={
dependsOn:"x",
//ещё много свойств
//Это свойство должно изменять свое имя в зависимости от значения dependsOn
f_of_????:"x^2"
}
На месте вопросов нужно поставить что-то, что будет динамически менять имя свойства f_of. Можно изменить f_of на функцию. Это должно работать, даже если dependsOn будет t,y,u и т.д.
Ответы (2 шт):
Автор решения: Алексей Шиманский
→ Ссылка
чтобы сделать диначический ключ, то просто он оборачивается в квадратные скобки, например
let number = 5;
let obj = {
['dynamic_' + number] : 'hello'
}
Автор решения: ΝNL993
→ Ссылка
Вы имели в виду что-то подобное?
let obj = {
__x_value: 'x',
f_of_x: 'some value',
get dependsOn() {
return this.__x_value
},
set dependsOn(x) {
let prev = this['f_of_'+this.__x_value]
delete this['f_of_'+this.__x_value]
this.__x_value = x
this['f_of_'+this.__x_value] = prev
}
}
console.log(obj.dependsOn, obj.f_of_z, obj.f_of_x)
obj.dependsOn = 'z'
console.log(obj.dependsOn, obj.f_of_z, obj.f_of_x)