菜鸟求轻拍。
function myFunction() {
var add = (function() {
var counter = 0;
return function () { return counter += 1;}
})();
add();
add();
delete add;
/*
add = (function() {
var counter = 0;
return function () { return counter += 1;}
})();
*/
add();
document.getElementById("demo").innerHTML = add();
}
为什么以上代码执行后,明明执行了delete,demo仍然显示为4?
而以下代码执行后,demo显示为2?
function myFunction() {
var add = (function() {
var counter = 0;
return function () { return counter += 1;}
})();
add();
add();
delete add;
add = (function() {
var counter = 0;
return function () { return counter += 1;}
})();
add();
document.getElementById("demo").innerHTML = add();
}
var声明的变量的不能被delete delete只能删除对象的属性或者数组的元素
你的第二段代码并不能说明你delete成功,只是你对add进行了重新赋值,又调用了两遍,所以是2