JSFiddle - React, Tailwind, and code Playground

by Julien Etienne

HTML

/* Higher-Order JavaScript */
const animal = name => ({
  speak: () => console.log(`${name} makes a noise.`)
});

const dog = (parent, name) => {
  return (...parent(name), ...{
    speak () { console.log(`${name} barks.`) }
  });
};

const d = dog(animal, 'Mitzie')
d.speak(); // Mitzie barks.

const message = name => `${name} makes a noise.`
const animal = type => type.message ? species.message || message;

JavaScript

/* Higher-Order JavaScript */
const animal = name => ({
  speak: () => console.log(`${name} makes a noise.`)
});

const dog = (parent, name) => {
  return {
    ...parent(name),
    ...({
      speak() {
        console.log(`${name} barks.`)
      }
    })
  };
};

const d = dog(animal, 'Mitzie')
d.speak(); // Mitzie barks.