|
|
- "use strict";
-
- /*
- Deep-clone an object.
- */
- function clone(obj)
- {
- if (obj instanceof Object)
- {
- var clonedObj = (obj instanceof Array) ? [] : {};
-
- for (var i in obj)
- {
- if ( obj.hasOwnProperty(i) )
- {
- clonedObj[i] = clone( obj[i] );
- }
- }
-
- return clonedObj;
- }
-
- return obj;
- }
-
-
-
- /*
- https://github.com/jonschlinkert/is-plain-object
- */
- function isPlainObject(obj)
- {
- return !!obj && typeof obj==="object" && obj.constructor===Object;
- }
-
-
-
- /*
- Shallow-merge two objects.
- */
- function shallowMerge(target, source)
- {
- if (target instanceof Object && source instanceof Object)
- {
- for (var i in source)
- {
- if ( source.hasOwnProperty(i) )
- {
- target[i] = source[i];
- }
- }
- }
-
- return target;
- }
-
-
-
- module.exports =
- {
- clone: clone,
- isPlainObject: isPlainObject,
- shallowMerge: shallowMerge
- };
|