| var baseAssign = require('./_baseAssign'), |
| baseCreate = require('./_baseCreate'); |
| |
| /** |
| * Creates an object that inherits from the `prototype` object. If a |
| * `properties` object is given, its own enumerable string keyed properties |
| * are assigned to the created object. |
| * |
| * @static |
| * @memberOf _ |
| * @since 2.3.0 |
| * @category Object |
| * @param {Object} prototype The object to inherit from. |
| * @param {Object} [properties] The properties to assign to the object. |
| * @returns {Object} Returns the new object. |
| * @example |
| * |
| * function Shape() { |
| * this.x = 0; |
| * this.y = 0; |
| * } |
| * |
| * function Circle() { |
| * Shape.call(this); |
| * } |
| * |
| * Circle.prototype = _.create(Shape.prototype, { |
| * 'constructor': Circle |
| * }); |
| * |
| * var circle = new Circle; |
| * circle instanceof Circle; |
| * // => true |
| * |
| * circle instanceof Shape; |
| * // => true |
| */ |
| function create(prototype, properties) { |
| var result = baseCreate(prototype); |
| return properties == null ? result : baseAssign(result, properties); |
| } |
| |
| module.exports = create; |