We talk about JavaScript. Each month in Warsaw, Poland.
A great read Mixins Are Dead. Long Live Composition
function createObj (spec) {
}
function createObj (spec) {
let {member1, member2} = spec
}
function createObj (spec) {
let {member1, member2} = spec
let otherObj = createOther(spec)
}
function createObj (spec) {
let {member1, member2} = spec
let otherObj = createOther(spec)
let method = () => {
}
}
function createObj (spec) {
let {member1, member2} = spec
let otherObj = createOther(spec)
let method = () => {
otherObj.doSomething()
}
}
function createObj (spec) {
let {member1, member2} = spec
let otherObj = createOther(spec)
let method = () => {
otherObj.doSomething()
}
return Object.freeze({method})
}
function createObj (spec) {
let obj1 = createObj1(spec)
let obj2 = createObj2(spec)
let obj3 = createObj3(spec)
}
function createObj (spec) {
let {fn1, fn2} = createObj1(spec)
let {fn3} = createObj2(spec)
let {fn4} = createObj3(spec)
return Object.freeze({fn1, fn2, fn3, fn4})
}
function createButton(spec) {
let {render, isRendered} = renderable(spec)
return Object.freeze({ render, isRendered })
}
function createButton(spec) {
let {render, isRendered} = renderable(spec)
let {onClick} = createLink(spec)
return Object.freeze({ render, isRendered, onClick })
}
function createButton(spec) {
let {render, isRendered} = renderable(spec)
let {linkOnClick: onClick} = createLink(spec)
let {resize} = animationHelper(spec)
let onClick = (action) => {
linkOnClick(action)
resize(spec.newSize)
}
return Object.freeze({ render, isRendered, onClick })
}
function createObj(spec) {
let changeSomething = () => {
spec.something = 'changed'
return spec
}
return Object.freeze({ changeSomething })
}
let state = {value: 1}
let mathOperators = createMathOperators(state)
mathOperators.add(2)
assertEqual(state.value, 3)