simple mixin and a few other functions for working with js objects
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Simple mixin and a few other functions for working with js objects

mixin(target, ...sources) - Simple mixin that takes multiple sources.

Mixin does NOT copy non-enumerable properties. It returns target object.

var mixin = require('otools').mixin;

var opts = mixin({}, defaults, opts);

each(object, function) - Loops over object keys and values with an iterator function.

Each does NOT iterate over non-enumerable properties.

var each = require('otools').each;

var obj = { Hello: " World!", "Goodbye": " everybody!" };
each(obj, function(value, key) {
  // this === obj
  console.log(key, value);

// Hello World!
// Goodbye everbody!

eachOwn(object, function) - Only loops over own properties of the object

eachOwn does NOT iterate over inherited properties or non-enumerable properties.

var eachOwn = require('otools').eachOwn;

var obj2 = Object.create(obj);
obj2.nothing = " to say."
// inherited from prototype
// obj2.Hello === ' World!'

eachOwn(obj2, function(value, key) {
  console.log(key, value);

// Nothing to say!