TypeError: can't access dead object (Тип ошибки:не удается получить доступ к мертвому объекту)

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Сообщение

TypeError: can't access dead object

Тип ошибки

TypeError

Что не так?

Для улучшения использования памяти и предотвращения утечек памяти Firefox запрещает надстройкам сохранять строгие ссылки на объекты DOM после уничтожения родительского документа. Мертвый объект содержит сильную ссылку (keep alive) на элемент DOM, который сохраняется даже после того, как он был уничтожен в DOM. Чтобы избежать этих проблем, ссылки на узлы DOM во внешнем документе должны храниться в объекте, который относится к этому документу, и очищаться при выгрузке документа или храниться как слабые ссылки.

Проверка, если объект мертв

Components.utils предлагает isDeadWrapper()метод, который может использовать привилегированный код. 
 

if (Components.utils.isDeadWrapper(window)) {
  // dead
}

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

try {
  String(window);
}
catch (e) {
  console.log("window is likely dead");
}

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: mdnwebdocs-bot, MakarovDs777
Обновлялась последний раз: mdnwebdocs-bot,