日期:2014-05-16  浏览次数:20507 次

delete在IE失效,求解
请看下面一段JS代码:
JScript code

function test(){
    this.str = "helloworld";
    alert(this.str);
    delete this.str;
    alert(this.str);
    alert("end");
}


这段代码好像没有错误,但是在IE执行的结果只有“helloworld”,后面的两个警告没有执行到。
但是换成火狐,结果就是“helloworld”,“undefined”,“end”.

不知道为什么会这样,求高手指教!

------解决方案--------------------
http://m.oschina.net/blog/28926
在IE下delete失败返回false
------解决方案--------------------
如果你这样调用 : test();
这时this指向window, 在IE下window的属性不能被删除
所以如果你这样调用:new test();
这是this指向object,这时结果就一样了
------解决方案--------------------
探讨

如果你这样调用 : test();
这时this指向window, 在IE下window的属性不能被删除
所以如果你这样调用:new test();
这是this指向object,这时结果就一样了