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){...}
拷贝过去当然不行,因为这样就不是实现原型了,大量创建的情况下,性能损耗非常大 有什么好办法吗我发帖时候就没报多大希望,我知道大部分人会说一大堆道理而不是实际的解决方法,或者就是直接否定了,但我依然期盼着有一个稍微满意一点点的回复
解决方案 »
- Googel Map API问题
- 如何从字符串的第一个字母开始匹配?
- 将table某列的颜色红色后,设置鼠标在上面移动时,颜色没有发生变化
- JS读取Excel表的时候如何获取行数的问题!!
- cookies的问题,想使用两个cookies
- 如何把<html><head></head><body></body></html>设置到iframe中
- 如何动态的选择表单控件?
- 函数返回值如何取到?
- 两个文件之间用history.go(-1)传参数!
- IE11下 用IE滤镜的方法没法获取文件的全部路径了
- JSP页面,分页选择功能实现思路
- dojo grid 排序 大神帮忙看一下(dojox.grid.DataGrid)
{
this.a=1;
this.b=2;
this.c={x:1};
this.d=[];
}