2016-05-04 114 views
0

約翰爸爸建議,而不是鏈接創建變量在處理模塊(見the modules section):使用內存泄漏與「angular.module」getter?

避免變量,而使用與吸氣語法鏈接

他解釋說:

這產生更多可讀代碼並避免可變衝突或 泄漏。

我更舒服獲取模塊中的變量,然後設置:

var app = angular.module('mymodule'); 
app.config(...); 
app.controller(...); 

,並與鏈接不舒服:

angular.module('mymodule').config(...).controller(...); 

,因爲我使用立即編碼調用函數表達式(IIFE),我很確定可變碰撞永遠不會發生。

但是,泄漏怎麼樣?有人可以解釋或演示一個Angular應用程序如何泄漏,因爲我得到一個模塊並將其存儲在一個var?

回答

1

通常它不會導致內存泄漏。

這裏重寫的模塊對象泄漏到全局範圍,不能被垃圾收集。

<script> 
    var app = angular.module('overridden', []); 
</script> 

<script> 
    var overriddenApp = angular.module('overridden', []); 
</script> 
+0

如上所述,我在IIFE-ied模式下編碼:)當我閱讀John Papa的聲明時,我認爲單獨附加組件時會發生內存泄漏。你回答證實了我的想法:) – Zakaria