Возможны ли теги динамических свойств в литералах объектов JS?Javascript

Форум по Javascript
Ответить
Anonymous
 Возможны ли теги динамических свойств в литералах объектов JS?

Сообщение Anonymous »

Я создаю свой первый фреймворк. Мне нужно иметь возможность генерировать полудинамический объект, для чего я хочу повторно использовать одну переменную, которая указывает на функцию, возвращающую уникальное значение. У меня есть такой литерал объекта JS:

Код: Выделить всё

let myObject = {
[test] : "placeholder text 1",
[test] : "lorem ipsum 2"
};
Бит [test] относится к функции такого типа:

Код: Выделить всё

const test = (function() {
return String("morePlaceholderText" + getRandomInt() )
})();
function getRandomInt() {
return Math.floor(Math.random() * 15);
};
Но если я запишу это в консоль после запуска, я получу только одно из свойств:

Код: Выделить всё

console.log(JSON.stringify(myObject));

Код: Выделить всё

{"morePlaceholderText7":"lorem ipsum 2"}
Демо:

Код: Выделить всё

const test = (function() {
return String("morePlaceholderText" + getRandomInt() )
})();
function getRandomInt() {
return Math.floor(Math.random() * 15);
};

let myObject = {
[test] : "placeholder text 1",
[test] : "lorem ipsum 2"
};

console.log(JSON.stringify(myObject));


До сих пор я пробовал несколько разных структур. Похоже, ему не нравились стрелочные функции. Не работает вообще без квадратных скобок в функции имени свойства.
Я мог бы получить аналогичный эффект, просто сохранив определенное свойство внутри моего объекта с уникальными метаданными идентификатора объекта, хранящимися в качестве значения, и я попробовал это... Но влияние на читаемость было настолько серьезным для некоторых из более сложных структур данных, что их пришлось выбросить в качестве крайней меры. Если бы я смог получить что-то, близкое по краткости и читабельности к тому, что у меня есть здесь, это было бы идеально.
У меня где-то что-то не так с синтаксисом? Трудно найти документацию по такого рода вещам.

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-possible
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»