Skip to content

Instantly share code, notes, and snippets.

@sxidsvit
Created January 29, 2020 17:22
Show Gist options
  • Save sxidsvit/a5910485d75e9e6f58dac08da0a0809a to your computer and use it in GitHub Desktop.
Save sxidsvit/a5910485d75e9e6f58dac08da0a0809a to your computer and use it in GitHub Desktop.
Пример использования композици в JS
// Функции, которые в последствии становятся методами объекта композиции
const canCode = ({ name }) => {
return { code: () => console.log(`${name} is codding ...`) }
}
const canVueAndJS = ({ name, age }) => {
return {
vue: () => console.log(`${name}, ${age} years old, is creating Vue.js app ...`),
js: () => console.log(`${name}, in his ${age}, is very nice in JS programming ...`)
}
}
// Создаем объек композиции из независимых функций/объектов
const createProgrammer = (name, age) => {
const programmer = { name, age }
const info = { age, education: 'high' }
return {
...programmer,
...info,
...canCode(programmer),
...canVueAndJS(programmer)
}
}
// Тестируем результат
const programmer = createProgrammer('Sergey', 62)
console.log(programmer);
console.log(programmer.name)
console.log(programmer.age)
console.log(programmer.education)
programmer.code()
programmer.js()
programmer.vue()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment