SOURCE

const mix = (...rest) => {
  let len = rest.length
  rest.forEach((fn, i) => {
      i < len - 1 && Object.setPrototypeOf(fn.prototype, rest[i+1].prototype)
  })
  return rest[0]
}

class People {
  say() {
    console.log("Hello")
  }
}

class Animal {
  walk() {
    console.log("Walk")
  }
}

class Singer {
  sing() {
    console.log("La~")
  }
}

class Lucy extends mix(People, Animal, Singer) {
  sayHi() {
    console.log("I am Lucy")
  }
}

const lucy = new Lucy()
lucy.say() // => Hello
lucy.walk() // => walk
lucy.sing() // => La~
lucy.sayHi() // => I am Lucy
console 命令行工具 X clear

                    
>
console