我目前工作的一個項目,其中有在幾乎每一個函數的末尾很多刪除運營商的運營商,類似如下:使用「刪除」局部變量
var link = $$('a[href=#refresh]');
// do something more...
delete link;
我知道刪除應該只用於對象屬性。我的問題是以我提到的方式使用刪除,無論如何會降低代碼或對性能產生負面影響?
我目前工作的一個項目,其中有在幾乎每一個函數的末尾很多刪除運營商的運營商,類似如下:使用「刪除」局部變量
var link = $$('a[href=#refresh]');
// do something more...
delete link;
我知道刪除應該只用於對象屬性。我的問題是以我提到的方式使用刪除,無論如何會降低代碼或對性能產生負面影響?
的MDN doc解釋delete
非常好。
刪除僅對對象的屬性有效。它具有對變量或函數名稱沒有影響 。雖然有時會將全局變量誤稱爲 ,但未指定對象的賦值(例如x = 5)實際上是全局對象上的屬性賦值。
刪除無法刪除預定義對象的某些屬性(如 對象,數組,數學等)。這些在稍後被ECMAScript 5和 描述爲不可配置。
在我的例子中刪除一個鏈接變量會簡單地返回「false」,我知道它不應該以它的方式使用。正如我所說,這不是我的代碼,所以我唯一感興趣的是如果這種使用刪除會減慢代碼。 – user3188066
它應該幾乎沒用。 –
它不會做任何事情。注:如果變量已在全局範圍內創建,例如通過排除'var',刪除將起作用。 – RobH
所有「已刪除」變量都在函數範圍內。所以我想他們應該在功能結束後自動刪除。 – user3188066