function copyObject(orig) { var copy = Object.create(Object.getPrototypeOf(orig)); //创建一个新的原型对象 copyOwnPropertiesFrom(copy, orig); return copy; } function copyOwnPropertiesFrom(target, source) { Object .getOwnPropertyNames(source) //获取对象所有属性名称 .forEach(function(propKey) { var desc = Object.getOwnPropertyDescriptor(source, propKey);//获取属性的attribute对象 Object.defineProperty(target, propKey, desc); //通过attribute对象定义多个属性 }); return target; }