2014-01-13 32 views
0

我目前工作的一個項目,其中有在幾乎每一個函數的末尾很多刪除運營商的運營商,類似如下:使用「刪除」局部變量

var link = $$('a[href=#refresh]'); 
// do something more... 
delete link; 

我知道刪除應該只用於對象屬性。我的問題是以我提到的方式使用刪除,無論如何會降低代碼或對性能產生負面影響?

+0

它應該幾乎沒用。 –

+0

它不會做任何事情。注:如果變量已在全局範圍內創建,例如通過排除'var',刪除將起作用。 – RobH

+0

所有「已刪除」變量都在函數範圍內。所以我想他們應該在功能結束後自動刪除。 – user3188066

回答

0

MDN doc解釋delete非常好。

刪除僅對對象的屬性有效。它具有對變量或函數名稱沒有影響 。雖然有時會將全局變量誤稱爲 ,但未指定對象的賦值(例如x = 5)實際上是全局對象上的屬性賦值。

刪除無法刪除預定義對象的某些屬性(如 對象,數組,數學等)。這些在稍後被ECMAScript 5和 描述爲不可配置。

+0

在我的例子中刪除一個鏈接變量會簡單地返回「false」,我知道它不應該以它的方式使用。正如我所說,這不是我的代碼,所以我唯一感興趣的是如果這種使用刪除會減慢代碼。 – user3188066