簡體   English   中英

如何刪除 JavaScript 中的 object?

[英]How to delete an object in JavaScript?

我有一個 function ,它創建了一個 object 我想刪除它。 我看到了這篇文章: 刪除 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>

刪除 object 的唯一方法是刪除它的所有引用。

通過調用setBackgroundColor創建的 object 幾乎立即被刪除,因為您從未保留對它的引用。

如果您要取消注釋以\\ var newObjet開頭的行,那么它仍然會幾乎立即被刪除,因為 function 將完成並且變量將從 scope 中退出。


我認為您想要做的是刪除您所做的背景顏色設置。

這不是 object 的一部分。 執行此操作的 function 剛剛附加到 object,但更改的是您傳入的element ,而不是 object 本身。

如果您想將背景顏色更改為其他顏色,則需要明確執行此操作。

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

也就是說,如果您想根據 window 大小更改某些內容的樣式,請使用CSS 內置的媒體查詢功能

這比搜索 DOM 和使用 JS 修改樣式要少得多。

delete命令對常規變量沒有影響,只有屬性。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM