如何删除 JavaScript 中的对象?

How to delete an object in JavaScript?

我有一个创建对象的函数,我想删除它。 我看到了这个 post : Deleting Objects in JavaScript 但是我没有创造条件删除它。

class setBackgroundColor {
    constructor (element, options) {
        this.element = element;
        this.options = options;
        this.element.style.backgroundColor = this.options;
    }
}

function onWindowResize () {
        let mobile = window.innerWidth < 800
        if (mobile) {
            new setBackgroundColor(document.querySelector('.my_container'), "red")
            // var newObjet = new setBackgroundColor(document.querySelector('.my_container'), "red")
        } else { 
            return 
            // delete newObjet
        }
}        

onWindowResize ();
window.addEventListener('resize', onWindowResize);
.my_container{
    margin: 30px;
    width: 100px;
    height: 100px;
    border: 1px solid black;
}

<div class="my_container"></div>

删除对象的唯一方法是删除它的所有引用。

您调用 setBackgroundColor 创建的对象几乎立即被删除,因为您从未保留对它的引用。

如果您要取消注释从 \ var newObjet 开始的行,那么它仍然会几乎立即被删除,因为函数将完成并且变量将退出范围。


我认为你想要做的是删除你所做的背景颜色设置。

那不是对象的一部分。执行此操作的函数只是附加到对象,但更改的是您传入的 element,而不是对象本身。

如果您想将背景颜色更改为其他颜色,那么您需要明确地这样做。

else {
    document.querySelector('.my_container').style.backgroundColor = "";

就是说,如果您想根据 window 大小更改某些内容的样式,请使用 the media query feature built into CSS

比搜索DOM和用JS修改样式省事多了

delete命令对常规变量没有影响,只有属性。

let x = {a:"a"};
delete x; //won't work
delete x.a; // works

删除它的唯一方法是取消引用它。