比如这样子:<script>
function AddAttribute( value){
window.myAttribute=value;
}
<script>
问题一: 请问在IE中,这样添加属性到window对象 这样做规范吗? 会不会造成js内存泄露?问题二:添加后如何删除我的属性?
window.myAttribute=null;这样子并没有真正删除myAttribute.谢谢!
function AddAttribute( value){
window.myAttribute=value;
}
<script>
问题一: 请问在IE中,这样添加属性到window对象 这样做规范吗? 会不会造成js内存泄露?问题二:添加后如何删除我的属性?
window.myAttribute=null;这样子并没有真正删除myAttribute.谢谢!
2.实际上真正删除了。
ps:js很灵活,使用js的人不会像你这样思考。
window['myAttribute']=value;
通过var声明的变量和通过function声明的函数拥有DontDelete特性,无法被删除。
第二:
从对象中删除一个属性
delete window.myAttribute
window.myAttribute = null 这种操作只是回收了内存 如果还存在对该对象的引用的话 会造成内存泄露
所以少用全局变量 内存泄露是一方面 js搜索起来也是很慢的
另:删除对象的属性用delete 方法