Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save davidystephenson/3ae30b5444383d7c175099c1f2b75f16 to your computer and use it in GitHub Desktop.

Select an option

Save davidystephenson/3ae30b5444383d7c175099c1f2b75f16 to your computer and use it in GitHub Desktop.
<script>
function vehicleFactory (speed) {
// 1. Declare a new object
const vehicle = {}
// 2. Customize the object
vehicle.distance = 0
vehicle.speed = speed
vehicle.travel = function () {
vehicle.distance += vehicle.speed
}
// 3. Return the object
return vehicle
}
const racecar = vehicleFactory(200)
const minivan = vehicleFactory(55)
console.log('initial racecar', racecar)
console.log('initial minivan', minivan)
racecar.travel()
minivan.travel()
console.log('final racecar', racecar)
console.log('final minivan', minivan)
class Vehicle {
constructor (speed) {
this.distance = 0
this.speed = speed
}
travel () {
this.distance += this.speed
}
}
const fighter = new Vehicle(2000)
const pogo = new Vehicle(10)
console.log('fighter', fighter)
console.log('pogo', pogo)
fighter.travel()
// pogo.travel()
console.log('final fighter', fighter)
console.log('final pogo', pogo)
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment