composition 2
by Artem
JavaScript
'use strict';
const greet = (state) => ({
greet: () => `Hello`
})
const User = (name, position) => {
let user = {
position,
get name() {
return `Hello, my name is ${name}`
},
set name(value) {
throw new Error(`name has already been specified.`)
}
}
return Object.assign(
user,
greet(user)
);
}
const vasya = User('vasya', 20);
console.log(vasya.greet());