Skip to content

Instantly share code, notes, and snippets.

@lucasdaiki
Created July 21, 2017 17:31
Show Gist options
  • Select an option

  • Save lucasdaiki/f862a92f36b991c6f9f5dac84d760f86 to your computer and use it in GitHub Desktop.

Select an option

Save lucasdaiki/f862a92f36b991c6f9f5dac84d760f86 to your computer and use it in GitHub Desktop.
Composition.js
function cagar() {
  console.log('cagando')
}

class Cachorro {
  constructor () {
    Object.assign(Cachorro.prototype, { cagar })
  }
  
  latir(){
    console.log('au au au')
  }
}

class Gato {
  constructor () {
    Object.assign(Gato.prototype, { cagar })
  }
  
  miar(){
    console.log('miau')
  }
}

var gato = new Gato()

console.log('gato caga?')
gato.cagar()

console.log('gato mia?')
gato.miar()

console.log('gato late?')
gato.latir()

// https://developers.caffeina.com/object-composition-patterns-in-javascript-4853898bb9d0

// https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment