Мне поручена графическая система меню, построенная на модели навигации на колесах, где каждый «слой» меню состоит из нового объекта «Колесо» со свойствами, которые определяют цвета и меню выбор и так далее.Эффективный способ создания множества объектов фабрики в Javascript
Я хотел бы использовать фабричный метод для создания единого общего объекта создателю для построения всех слоев, что-то похожее на собачьей завод из Маттиас Петтер Йохансон в funfunfunctions: видео: https://www.youtube.com/watch?v=ImwrezYhw4w расшифровку: https://medium.com/humans-create-software/factory-functions-in-javascript-video-d38e49802555#.mrrvx4a37
собак объект как Заводской метод:
const dog =() => {
const sound = 'woof'
return {
talk:() => console.log(sound)
}
}
// create a single new dog
const sniffles = dog()
sniffles.talk() // Outputs: "woof"
Это хорошо работает, и я понимаю, как это работает. То, что пень меня немного, - это то, как «создать массу» около 30 собак, скажем ... перебирает множество имен собак с изменяемыми свойствами (разный цвет, размер и т. Д.).
Любые советы или примеры, которые нужно искать, очень ценятся!
Спасибо, Madara за быстрый ответ! Но если я получу свой код, я бы получил доступ к каждому из цветов собак через собак [1] .color, dogs [2] .color и т. Д. Что, если бы я хотел получить к ним доступ через более личные имена ... sniffles.color, scruffy.color и т. д. ... используя массив для генерации имени объекта. ? –
@JimmPratt В JS нет переменных переменных. Вы можете использовать назначение деструктурирования так: 'const [sniffles, scruffy] = dogProps.map (dog)'. Но вы не можете определить новую переменную во внутренней области с динамическим именем. –
Мех, думал так много ... и используя eval() считается злым ... и используя dogNames = ["sniffles", "scruffy"); использование метода ['varname'] кажется бесполезным при попытке добавить методы и переменные (http://www.hiteshagrawal.com/javascript/dynamic-variables-in-javascript/) .. так ... нормально, будет жить с собаками. Спасибо за ваше время! –