el documento es parte de la API del navegador, pero aún así, ¿qué pasa si quiero anularlo? ¿Hay alguna forma de forzarlo, ya que esto desencadena un error?
https://jsfiddle.net/4yuf5h2o/
var document = { f: function() { alert('o') } } document.f();No en el nivel superior. En Chrome, por ejemplo, window.document es un captador no configurable que devuelve el documento:
console.log(Object.getOwnPropertyDescriptor(window, 'document'));Dado que no es configurable, no se puede sobrescribir con nada más.
Y tampoco puede declarar un nuevo identificador de nivel superior llamado document , ya que ya existe. Use el modo estricto para hacer explícito el error:
'use strict'; const document = 'foo'; Pero puede declarar una nueva variable llamada document dentro de un IIFE (por lo que no está en el nivel superior).
(() => { var document = { f: function() { alert('o') } } document.f(); })();