merge-context

like .bind() or .bindAll() but extends 'this' instead of replacing it

merge-context

like _.bind() and _.bindAll() but extends the context (this) instead of replacing it

var mergeCtx = require('merge-context');
 
var someFunction = function () { console.log(this.foo); }
 
// someFunction(); 
// $  
 
someFunction = mergeCtx(someFunction, {
  foo: true
  'and you know, the stuff': 82385235,
  I: 93529523,
  want: 2352,
  'to inject into': 'someFunction\'s `this` variable'
});
 
// someFunction(); 
// $ true 

To do an object of functions all at once (like _.bindAll)

var mergeCtx = require('merge-context');
 
var someObject = {
  foofunction () { ... },
  barfunction () { ... },
  bazfunction () { ... }
};
someObject = mergeCtx.all(someObject, {
  sails: require('sails')
});
 
// Now I can do: 
someObject.foo();
someObject.bar();
someObject.baz();
 
// And they'll all have access to `this.sails` in there. 
 
 

MIT c. Mike McNeil 2014