How do I even
JavaScript
Applaud for
WebHenrik
WebTryggvi


var that = this;WAT
function Klass (name) {
this.name = name
}
Klass.prototype.printName = function () {
console.log(this.name)
}
var a = new Klass("Tom")
a.printName(); // TomWAT
Classes
Template string
Arrow functions
Object.assign
But how do I write even JS?
Classes
Object composition
Singletons
adapt to new requirements
Familiar syntax
hard to adapt to new requirements
Easy to test
Class inheritance
Animal {
poop()
Dog {
bark()
}
Cat {
snuggle()
}
}
Robot {
shootLazers()
}
Class inheritance

Our customers demand a robot dog.
Class inheritance

Animal {
poop()
Dog {
bark()
}
Cat {
snuggle()
}
}
Robot {
shootLazers()
}
Class inheritance
Our customers demand a robot dog.
GameObj {
bark()
Animal {
poop()
Dog {}
Cat {
snuggle()
}
}
Robot {
shootLazers()
RobotDog {}
}
}
Add parent class?
Class inheritance
Animal {
poop()
Dog {
bark()
}
Cat {
snuggle()
}
}
Robot {
shootLazers()
RobotDog {
bark()
}
}
Duplicate code?
Class inheritance
No good option
Object composition
Object composition
Dog {
poopBehaviour()
barkBehaviour()
}
Cat {
poopBehaviour()
snuggleBehaviour()
}
Robot {
shootLazersBehaviour()
}Object composition

Our customers demand a robot dog.
Object composition
Dog {
poopBehaviour()
barkBehaviour()
}
Cat {
poopBehaviour()
snuggleBehaviour()
}
Robot {
shootLazersBehaviour()
}
Object composition
Dog {
poopBehaviour()
barkBehaviour()
}
Cat {
poopBehaviour()
snuggleBehaviour()
}
Robot {
shootLazersBehaviour()
}
RobotDog {
barkBehaviour()
shootLazersBehaviour()
}Just bark and shoot lazers.

Testing
QUESTIONS?
ES6 L&L
By Tryggvi Gylfason
ES6 L&L
- 452