Безопасно ли использовать шаблон модуля Javascript? - PullRequest
2 голосов
/ 18 декабря 2011

Я использую шаблон модуля javascript уже некоторое время.

Я показал пример шаблона модуля одному из моих коллег. Он сказал, что следующий код может вызвать утечку памяти.

var test = (function(){

   var events = {
      // my functions go here
   }

   return {
     // return something
   }

}());

он сказал, что, поскольку переменная events является объектом, и я не устанавливаю для него значение null, это может вызвать утечку памяти, даже если я установлю null для теста позже.

Насколько я знаю, приведенный выше фрагмент кода в порядке, потому что я не пропускаю события.

Мне нужны советы!

Ответы [ 2 ]

3 голосов
/ 18 декабря 2011

Я думаю, что ваш код в порядке.Утечки памяти в замыканиях происходят, когда у вас есть ссылка на элемент DOM из-за циклической ссылки (foo держится на element, а element держится на foo, поэтому они никогда не будут собираться мусором):

function foo(element, a, b) {
    element.onlick = function(a, b) { /* uses a and b */ };
}

Мой источник этой веры здесь

Но другие могут знать о другой проблеме ...

0 голосов
/ 18 декабря 2011

@ луна - Зачем слишком беспокоиться?Как часто этот код исполняется между заседаниями?Сколько байтов будет потеряно?Затем вы должны рассмотреть различные браузеры, которые будут интерпретировать и запускать ваш Javascript.

Короче - сконцентрируйте свои усилия в другом месте - тогда вы получите лучшие награды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...