[英]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.