猿问

关于javascript中delete的问题

菜鸟求轻拍。


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();

}


GCT1015
浏览 458回答 1
1回答

蓝山帝景

var声明的变量的不能被delete delete只能删除对象的属性或者数组的元素你的第二段代码并不能说明你delete成功,只是你对add进行了重新赋值,又调用了两遍,所以是2
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答