js的对象属性的两种访问方式和对象的内存理解

来源:互联网 发布:软件系统试运行方案 编辑:程序博客网 时间:2024/05/23 00:08

    js对象属性有两种访问方式,代码如下:

      

<html><head> <script language="javascript">   function Person() {};   var p1 = new Person();   p1.name = "拉拉";   window.alert(p1.name);   var al = "na" + "me";   window.alert(p1[al]); </script></head><body></body></html>
第二种方式好处在于可以使用字符串拼接,这样可实现属性的动态访问。

js对象初始化的小例子:

<html><head><script language="javascript"> function Person(){}; var a = new Person(); a.age = 10; a.name = "拉拉"; var b = a; b.name = "小赖"; window.alert(b.age + "b名字:" + b.name + "a名字:" + a.name); b = null;  window.alert(a.age + "a名字:" + a.name);</script></head><body> </body></html>


js中的对象回收机制:初始化一个对象时,对象名放在桟中,它指向堆中存放的内容。在js引擎中会有一个表单,存放堆地址和它被引用的次数,如果次数为0,则被回收。这种方式是被动的,js还提供一种主动释放内存的方式。代码为:

<html><head><script language="javascript"> function Person(){}; var a = new Person(); a.age = 10; a.name = "拉拉"; var b = a; b.name = "小赖"; window.alert(b.age + "b名字:" + b.name + "a名字:" + a.name); b = null;  window.alert(a.age + "a名字:" + a.name);</script></head><body> </body></html>

delete只是释放对象的属性,不过立即释放,即使还有指向它的对象,也不能访问了,已经被释放掉了。