js内存的机制

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

 

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

      

[html]  view plain  copy
 
  1. <span style="font-size:18px;"><html>  
  2. <head>  
  3.  <script language="javascript">  
  4.    function Person() {};  
  5.    var p1 = new Person();  
  6.    p1.name = "拉拉";  
  7.    window.alert(p1.name);  
  8.    var al = "na" + "me";  
  9.    window.alert(p1[al]);  
  10.  </script>  
  11. </head>  
  12. <body>  
  13. </body>  
  14. </html></span>  
第二种方式好处在于可以使用字符串拼接,这样可实现属性的动态访问。

 

js对象初始化的小例子:

 

[html]  view plain  copy
 
  1. <span style="font-size:18px;"><html>  
  2. <head>  
  3. <script language="javascript">  
  4.  function Person(){};  
  5.  var a = new Person();  
  6.  a.age = 10;  
  7.  a.name = "拉拉";  
  8.  var b = a;  
  9.  b.name = "小赖";  
  10.  window.alert(b.age + "b名字:" + b.name + "a名字:" + a.name);  
  11.  b = null;  
  12.   window.alert(a.age + "a名字:" + a.name);  
  13. </script>  
  14. </head>  
  15. <body>   
  16. </body>  
  17. </html></span>  


 

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

 

[html]  view plain  copy
 
  1. <span style="font-size:18px;"><html>  
  2. <head>  
  3. <script language="javascript">  
  4.  function Person(){};  
  5.  var a = new Person();  
  6.  a.age = 10;  
  7.  a.name = "拉拉";  
  8.  var b = a;  
  9.  b.name = "小赖";  
  10.  window.alert(b.age + "b名字:" + b.name + "a名字:" + a.name);  
  11.  b = null;  
  12.   window.alert(a.age + "a名字:" + a.name);  
  13. </script>  
  14. </head>  
  15. <body>   
  16. </body>  
  17. </html></span>  

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

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值