POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

El eslabón perdido

Detección de addEventListener en la cadena de prototipos: diferencias entre navegadores y extensiones

Publicado el 26/09/2025

Planteamiento del acertijo y código explicado: Un script comienza comprobando que addEventListener esté en globalThis usando el operador in y seguidamente itera por la cadena de prototipos comprobando con Object.hasOwn si alguno tiene addEventListener como propiedad propia; si lo encuentra lanza Error. Sin embargo, en cierta ejecución el bucle llega al final sin encontrar ninguna propiedad propia llamada addEventListener aunque in globalThis devuelve true y alert funciona normalmente.

Comportamiento habitual: En una página normal el recorrido de prototipos muestra que addEventListener existe en el prototipo EventTarget, de modo que al inspeccionar la cadena se encuentra finalmente como propiedad propia en ese prototipo. La salida típica muestra objetos Window, WindowProperties y EventTarget y detecta addEventListener en EventTarget.

Lo que ocurre en ciertos entornos de extension: En los content scripts de algunas extensiones, especialmente en implementaciones como la de Firefox, la ilusión de aislamiento altera lo que el código puede ver. El motor limita la cadena de prototipos expuesta al script manteniendo window y su prototipo visibles, pero la resolución de propiedades puede delegar internamente a una implementación subyacente que hace que in window sea true y typeof window.addEventListener devuelva function, sin que ninguna de las entradas accesibles en la iteración aparezca como propietario de la propiedad. En otras palabras, la propiedad es visible para lookup pero no existe como propiedad propia en los objetos que el script puede inspeccionar con Object.hasOwn.

Consecuencias y recomendaciones prácticas: Si desarrollas extensiones o código que deba ser robusto frente a distintas implementaciones de navegador, no confíes exclusivamente en iteraciones de prototipos con Object.hasOwn para detectar APIs globales. Es más seguro comprobar typeof sobre la función o usar acceso directo dentro de try catch para confirmar comportamiento. Además, testea siempre en las plataformas de destino y ten en cuenta las diferencias de aislamiento entre navegadores.

Sobre Q2BSTUDIO y cómo te podemos ayudar: En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones a medida para empresas. Ofrecemos desarrollo de aplicaciones a medida y software a medida adaptado a tus necesidades, y contamos con experiencia en inteligencia artificial e ia para empresas, agentes IA y en la integración de servicios cloud aws y azure. También proporcionamos servicios de ciberseguridad y pentesting, así como servicios inteligencia de negocio y soluciones con power bi para mejorar la toma de decisiones. Si buscas crear una extensión, una aplicación web o una arquitectura segura y escalable podemos ayudarte desde la consultoría hasta la entrega completa. Conoce nuestras capacidades en desarrollo de aplicaciones y software a medida visitando desarrollo de aplicaciones multiplataforma y descubre nuestros servicios de seguridad en ciberseguridad y pentesting. Somos expertos en IA, automatización, agentes IA, servicios cloud aws y azure, y en soluciones de business intelligence con power bi para impulsar tu negocio.

Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio