似乎在JavaScript中你不能使用delete函数参数,但你可以delete从函数中获取全局变量.
为什么会这样?
var y = 1;
(function (x) { return delete y; })(1); // true
(function (x) { return delete x; })(1); // false
Run Code Online (Sandbox Code Playgroud)
实际上,它们都不应该返回true,实际上它们不会在Firefox或Chrome中(在其他浏览器中未经测试).我想你用Firebug或其他浏览器控制台对它进行了测试,这会因为控制台使用eval()而改变了一些东西.delete只删除对象的属性,并且通常不能删除使用的变量var,无论范围如何.
这是Kangax关于这个主题的优秀文章:http://perfectionkills.com/understanding-delete/
| 归档时间: |
|
| 查看次数: |
2350 次 |
| 最近记录: |