let blueBelt = {
type: 'belt',
color: 'blue'
}
let redInserter = {
type: 'inserter',
color: 'red'
}
const Runnable = (obj) => {
const proto = {
stop() {
console.log(`${obj.color} ${obj.type} stopped`)
},
start() {
console.log(`${obj.color} ${obj.type} started`)
}
}
return Object.assign(obj, proto)
}
Runnable(blueBelt, 1)
blueBelt.stop() // blue belt stopped
Runnable(redInserter, 2)
redInserter.start() // red inserter started