Skip to content

Instantly share code, notes, and snippets.

@pre1ude
pre1ude / create-class-like-functions.js
Created October 5, 2018 15:04 — forked from babakness/create-class-like-functions.js
Helpers for creating class like functions that can be invoked without new
const assoc = ( prop, value, obj ) =>
Object.assign( {}, obj, { [prop]: value })
const reducer = ( $values, accumulate, [key,val] ) => assoc( key, val.bind( undefined, ...$values ), accumulate )
export const bindValuesToMethods = ( $methods, ...$values ) =>
Object.entries( $methods ).reduce( reducer.bind( undefined, $values ), {} )
export const prepareInstance = (instanceMethods, staticMethods = ({}) ) => Object.assign(