Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

463
Vistas
¿Cuál es el significado de las propiedades atenuadas cuando se usa console.dir en Chrome Developer Tools Console?

¿Qué significa cuando la propiedad de un objeto se desvanece ligeramente cuando se usa console.dir() en la consola de Chrome?

Por ejemplo, eche un vistazo a "superior, ancho, mundo visible, x e y" en esta captura de pantalla.

Captura de pantalla de las herramientas para desarrolladores

Miré la referencia de la API aquí https://developer.chrome.com/devtools/docs/console-api#consoledirobject , pero no tuve suerte.

Gracias

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Aparecen propiedades atenuadas para indicar propiedades no enumerables. Si hacemos:

 var a = {}; Object.defineProperties(a, { hello: { enumerable: false }, world: { enumerable: true } }); console.dir(a);

luego vemos que hello se desvanece, mientras que world no lo es.

imagen de la consola que muestra la propiedad <code>hello</code> difuminada

En su código, si hace for(prop in obj) { console.log(prop); } (donde obj es el objeto que nos está mostrando en la captura de pantalla de su consola), verá que solo las propiedades atenuadas no se enumeran.

También puede verificar esto con Object.getOwnPropertyDescriptor(obj, "worldVisible") , que debería devolver un objeto con una propiedad enumerable: false .

Tenga en cuenta que las cursivas en los nombres de las propiedades indican que el valor de la propiedad está definido por una función getter. (Esto también hace que el valor muestre un valor (...) antes de que se ejecute la función). Este es un problema totalmente independiente de la enumerabilidad, lo que hace que los nombres se desvanezcan. Puede tener propiedades definidas por captadores en cursiva que no sean propiedades atenuadas no enumerables, y viceversa.

over 4 years ago · Santiago Trujillo Denunciar

0

No he podido encontrar en la documentación ninguna explicación oficial, pero tengo una buena suposición basada en algunas pruebas de que los atributos atenuados son los que están predeterminados/establecidos por el motor de Javascript y no por el código en sí. Aquí hay unos ejemplos:

length en una matriz

 var foo = [1,2,3,45,1337]; console.dir(foo);

Da en la consola:

captura de pantalla de la consola con la longitud atenuada

Tenga en cuenta que los índices no están atenuados, pero la length y todo en __proto__ .

creación de prototipos

El código de https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype#Examples

 var Person = function() { this.canTalk = true; }; Person.prototype.greet = function() { if (this.canTalk) { console.log('Hi, I am ' + this.name); } }; var Employee = function(name, title) { Person.call(this); this.name = name; this.title = title; }; Employee.prototype = Object.create(Person.prototype); Employee.prototype.constructor = Employee; Employee.prototype.greet = function() { if (this.canTalk) { console.log('Hi, I am ' + this.name + ', the ' + this.title); } }; var bob = new Employee('Bob', 'Builder'); bob.greet(); console.dir(bob);

Da en la consola:

ingrese la descripción de la imagen aquí

Hay muchas cosas interesantes aquí. Todas las instancias de greet no están atenuadas. Sin embargo, en todas partes __proto__ está atenuado (probablemente porque el motor lo establece en su prototipo). Además, el constructor anulado de Person está atenuado, pero el constructor establecido explícitamente de Employee no está atenuado.

Así que creo que hay un patrón aproximado aquí, que es que Chrom(e/ium) oscurece las propiedades que cree que es menos probable que le importen, ya sea porque fueron heredadas o establecidas por el motor como una construcción. del lenguaje, pero parece que no es perfecto. (Pero, ¿quién es, verdad?) Otra cosa interesante que puedes probar es presionar F12 y escribir console.dir(window) . Allí verá casi todo atenuado, excepto las cosas que Javascript del sitio web coloca en el espacio de nombres de la ventana global.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda