var a = function(){}
a.prototype = {
a:1,
b:2,
c:{
  x:1
},
d:[]
}var b = new a;
var c = new a;b.a = "b";
c.a = "c";b.c.x = 3;
c.c.x = 4;
这个时候,可以 b.c 和 c.c 其实是内存指向的相同的地址,改变 b.c 或者 c.c 
这两者都一起被改变了,而改变 b.a 或者 c.a 只改变当前的,也就是 new 的时候
number,string 被new了,object function array 依然没有被new,也依然是一个引用,但是我想实现 new 的时候,下面所有的对象都被new,特别是 object {},也就是改变
b.c.x 不会改变 c.c.x 通过
for(var name in xx){...}
拷贝过去当然不行,因为这样就不是实现原型了,大量创建的情况下,性能损耗非常大 有什么好办法吗我发帖时候就没报多大希望,我知道大部分人会说一大堆道理而不是实际的解决方法,或者就是直接否定了,但我依然期盼着有一个稍微满意一点点的回复