Освобождение памяти используется одинокими узлами DOM в JavaScript

function findFirstMatchingResult(arr, val){
  for(let i = 0, len = arr.length; i < len; i++){
    const result = arr[i]();
    if(result === val){
      return true;
    }
   }

   return false;
}


// if you really want to make it generic, you could do the following:

function findFirstMatchingResult(arr, val){
  return function(...params){
    for(let i = 0, len = arr.length; i < len; i++){
      const result = arr[i].apply(null, params[i]);
      if(result === val){
        return true;
      }
     }

     return false; 
  }
}

findFirstMatchingResult([
 function(str){
   return str.length;
 }
])([
 'hello'
]);

Обобщенная версия (у функций могут быть аргументы) определенно немного громоздка, чтобы передавать массив для каждой функции, но это хорошая отправная точка. Это также было бы только для примитивов. Как === не будет работать для массива, объектов и т. Д.

5
задан Karim 8 February 2009 в 18:24
поделиться

2 ответа

Если Вы установите каждый объект в NULL, то они будут автоматически собраны "мусор".

5
ответ дан 13 December 2019 в 22:18
поделиться

Да, установка в NULL объектов должна быть в порядке … За исключением того, что некоторые детали реализации должны заботиться о с Internet Explorer: его обработка циклических ссылок изворотлива. См. http://msdn.microsoft.com/en-us/library/bb250448.aspx

Циклические ссылки — Когда взаимные ссылки считаются между инфраструктурой Internet Explorer COM и любым механизмом выполнения сценариев, объекты, могут пропустить память

Таким образом, необходимо повредить циклические ссылки в некоторых случаях.

5
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: