function extend(a, b, thisArg) {
	  forEach(b, function assignValue(val, key) {
	    if (thisArg && typeof val === 'function') {
	      a[key] = bind(val, thisArg);
	    } else {
	      a[key] = val;
	    }
	  });
	  return a;
	}
Extends object a by mutably adding to it the properties of object b.

@param {Object} a The object to be extended
@param {Object} b The object to copy properties from
@param {Object} thisArg The object to bind function to
@return {Object} The resulting value of object a