31 lines
		
	
	
		
			686 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			686 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var isObject = require('./isObject'); | ||
|  | 
 | ||
|  | /** Built-in value references. */ | ||
|  | var objectCreate = Object.create; | ||
|  | 
 | ||
|  | /** | ||
|  |  * The base implementation of `_.create` without support for assigning | ||
|  |  * properties to the created object. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Object} proto The object to inherit from. | ||
|  |  * @returns {Object} Returns the new object. | ||
|  |  */ | ||
|  | var baseCreate = (function() { | ||
|  |   function object() {} | ||
|  |   return function(proto) { | ||
|  |     if (!isObject(proto)) { | ||
|  |       return {}; | ||
|  |     } | ||
|  |     if (objectCreate) { | ||
|  |       return objectCreate(proto); | ||
|  |     } | ||
|  |     object.prototype = proto; | ||
|  |     var result = new object; | ||
|  |     object.prototype = undefined; | ||
|  |     return result; | ||
|  |   }; | ||
|  | }()); | ||
|  | 
 | ||
|  | module.exports = baseCreate; |