比如这样子:<script>
  function AddAttribute( value){
          window.myAttribute=value;
  }
<script>
问题一: 请问在IE中,这样添加属性到window对象 这样做规范吗? 会不会造成js内存泄露?问题二:添加后如何删除我的属性?
window.myAttribute=null;这样子并没有真正删除myAttribute.谢谢!

解决方案 »

  1.   

    1.可以,规范,不推荐。其实你定义全局变量的时候等同于添加属性到window对象。
    2.实际上真正删除了。
    ps:js很灵活,使用js的人不会像你这样思考。
      

  2.   

    js 支持动态添加属性 并赋值。完全没问题window.myAttribute=value;
    window['myAttribute']=value;
      

  3.   

    var 定义的全局变量就是window的属性
    通过var声明的变量和通过function声明的函数拥有DontDelete特性,无法被删除。
      

  4.   

    var 定义的全局变量就是window的属性
      

  5.   

    第一:规范的
    第二:
    从对象中删除一个属性
    delete window.myAttribute
      

  6.   

    完全没有问题 但得注意一点的是 
    window.myAttribute = null 这种操作只是回收了内存 如果还存在对该对象的引用的话 会造成内存泄露
    所以少用全局变量 内存泄露是一方面 js搜索起来也是很慢的
    另:删除对象的属性用delete 方法