import { fromJS } from 'immutable';
/**
 * ---
 * 深度拷贝对象<br/>
 *  * 在JS中对应引用在很多场景下会出现问题，因为引用对象改变值后，所有使用该对象处都发生了变化(这往往不是想要的)。
 *  * 深度拷贝后的对象，与原来的对象不存在引用同一个地址情况。
 * @param {object} obj  需要深度拷贝的对象
 * @return {object}  深度拷贝后的新对象
 * @static
 * @function deep
 * @example 01 深度拷贝
 * --------------------------------------------------------------------------
 * import { deep } from '@riil-frontend/utils';
 * let obj = {name:'name'};
 * let objA = obj;
 * objA.age = '18';
 * console.log(obj.age) // 18    // 不希望改变原来对象的值
 * console.log(objA.age) // 18
 *
 * let deepObj = deep(obj);
 * deepObj.address = 'beijing';
 * console.log(obj.address) // undefined
 * console.log(deepObj.address) // "beijing"
 *
 */

export var deep = function deep(obj) {
  return fromJS(obj).toJS();
};