var page={adress:"http://ssss/url"};
page.contents="Xxx";/*请问以下这两个有什么区别呢?*/
delete page.contents;page.contents=null;请指教!~谢谢~~~~

解决方案 »

  1.   

    你在之后访问下page.contents试试就知道了阿 呵呵
      

  2.   

    嗯~其实我是想知道:
    一个是置空,然后内存会被gc回收。
    另一个把整个属性给删除了,那内存也会被gc回收么?
    如果一样也会被GC回收,那这两者执行后节约的内存大小都一样么?
      

  3.   

    delete page.contents;
    alert(typeof page.contents);
    var bef = page.contents; 
    page.contents=null;
    alert(typeof page.contents);
    var aft = page.contents;
    alert(bef == aft); //true
    alert(bef === aft); //false
      

  4.   

    这里设为null其实还是一个属性(存在)
      

  5.   

    delete 之后值变为undefined
    赋值null后值为null,null是一个空对象指针,page.contents原值没有变量引用,内存也已经释放
    这两种方式操作对象的属性都会释放该属性所占用的内存。