http://perfectionkills.com/understanding-delete/
原文作者是在读《Object-Oriented Javascript》的Function章节后有感,写下的一篇博文。
书中有一句话:function其实就是一个普通变量——它可以被复制到另一个变量中而不会被删除。如果这样解释的话,这里有个例子:
//army注:这一源代码片段是在Firebug下的Console控制台运行的,放在页面中需改写
var sum = function(a, b) {return a + b;}
var add = sum;
delete sum;
true
typeof sum;
“undefined”
忽略代码中省略的两个分号,你注意到这个代码片段的问题了吗?按那句话所说,删除sum不应该成功;delete语句返回的值不可能是true;typeof sum的结果不会是”undefined”。可是事实却非如此,所有的这一切都是因为:Javascript中不可能删除变量。至少不能以这种方式删除。
这是为什么呢?
要回答这个问题,我们需要理解delete操作符是怎么运作的:即什么可以删除、什么不可以删除、为什么?
原理
我们为什么可以这样删除对象的属性?
var o = {…
Posts Tagged ‘删除’

本博客所有文章均采用