簡體   English   中英

如果您重新創建剛剛刪除的相同屬性,“刪除”運算符是否有意義?

[英]Does the `delete` operator make sense if you re-create the same property you just deleted?

我目前正在閱讀 Michael McMillan 的“Datastructures and Algorithm with JavaScript”。 在第 39 頁上,他為列表實現了clear的 function,即 function 清除了列表的元素。

function clear() {
  delete this.dataStore;
  this.dataStore = [];
  this.listSize = this.pos = 0;
}

this.dataStore分配給undefinednull會不會達到相同的結果? 或者為什么不立即為this.dataStore分配一個空數組?

讀過delete從 object 中刪除了一個屬性,如果沒有更多對同一屬性的引用,它最終會自動釋放。

正如您在上面看到的,他將其刪除然后重新創建。 那么,如果delete運算符無論如何都不想釋放該屬性,他是否有意義? 簡單地用空數組[]重新分配this.dataStore不是更有效且同樣有效嗎?

如果他不想釋放該屬性, delete操作符是否有意義?

不! 這可能是由於對delete所做的相同的舊誤解造成的。

簡單地重新分配this.dataStore = []不是更有效且同樣有效嗎?

是的,它會產生相同的效果[1] ,而且效率更高

1:假設該屬性沒有 getter/setter 或不可枚舉。

暫無
暫無

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

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