在ECMAScript3中要实现对象的克隆(深度拷贝),只能这么实现:

function clone(target){
	var tmp = {};
	for(var key in target){
		if(typeof target[key] == 'object'){
			tmp[key] = clone(target[key]);
		}else{
			tmp[key] = target[key];
		}
	}
	return tmp
}

在学了ECMAScript6之后,我们可以这么实现:

function clone(origin) {
  let originProto = Object.getPrototypeOf(origin);
  return Object.assign(Object.create(originProto), origin);
}

代码瞬间变得简洁多了