Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

452
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!