标签:obj log 对象 JavaScript var console o1 属性
JavaScript 对象是拥有属性和方法的数据。
对象是什么,存储在哪里? 栈,堆 栈的数据读取,写入速度快,但是存储的内容较少 堆的读取和写入速度慢,但是存储的内容多 对象是存储在堆中, 栈中,一旦该变量不再使用时会被清理掉1 var str={ 2 // a,b,c,d这些是str的属性,属性的名字是a b c d e 3 //属性名看作key 4 // key是关键字,这个key是不能重复,是唯一的 5 // 2,2,2,1,2 这是这个属性对应的值, 6 //属性值,这个值是该属性的唯一值,value 7 a:2, 8 b:2, 9 c:1, 10 d:2, 11 e:3 12 }
键值对:
1 var obj={ 2 a:1, 3 b:2, 4 c:3 5 } 6 var obj1={a:1,b:2,c:3}; 7 console.log(obj.a); // .是什么内容下,这里是打印obj的a属性的值 8 obj.d=obj.a+obj.b; 9 console.log(obj.d); // 创建设置d属性,他的值是obj的a属性值和b属性值的和引用地址就是指堆中对象存储的地址:
1 var o={a:1}; 2 var o1=o;//将o对象的引用地址赋值给o1 3 o1.a=10;//因为o1和o是同一个对象,因此修改o1的属性就相当于修改了o的属性 4 console.log(o); 5 6 7 8 var o={a:1}; 9 var o1=o; 10 o={b:2};//重新改变新地址 11 o.a=20; 12 console.log(o1);//a:1 13 console.log(o);//a: 20 b: 2内存泄漏 对象的引用列表中变量并没有清除掉引用关系,因此就不会被垃圾回收车回收:
1 var obj={a:1}; 2 obj=3; 3 //{a:1} 的引用列表中任然是obj 4 // obj已经是新的值3了,于是没有任何方法再获取{a:1}; 5 // 这个对象也不会被垃圾回收车回收 6 7 obj=null;//在{a:1}的引用地址中删除了obj的引用 8 obj=3;//重新给obj赋值3 9 // 当内存占用达到一定的时候,就会有一个垃圾回收车将所有堆中没有引用关系的对象回收掉 10 11 12 var obj1={a:1}; 13 var obj2={a:1}; 14 // 当使用{a:1} 这就是在堆中创建了一个新的对象,就会有一个新的引用地址 15 // 上面使用两个{a:1},这就相当于分别创建了两个新对象,他们的引用地址是不相同的 16 console.log(obj1==obj2);//false
标签:obj,log,对象,JavaScript,var,console,o1,属性 来源: https://www.cnblogs.com/wyp-King/p/12676433.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。