simple mixin and a few other functions for working with js objects
JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
LICENSE.md
README.md
index.js
package.json
tests.js

README.md

otools

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!