const _sampleDeepClone = target => {
   if (typeof target != 'object' || !target) return target

  let constructor = target.constructor
  let result = new constructor()

  for (let key in target) {
  	if (target.hasOwnProperty(key)) {
		result[key] = _sampleDeepClone(target[key])
	}
  }

  return result
}