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

325
Vistas
Objeto () frente a Función ()

Tengo entendido que casi todo en JS es un objeto y que los constructores son una forma de crear un nuevo objeto. Sé que los tipos de datos como Array, Function y Objects tienen que usar la nueva palabra clave, lo que los convierte en objetos y en el backend funciona como new Array() , new Function() o new Object() Corríjame si soy equivocado. Aquí es donde las cosas se volvieron confusas para mí. Asigné x a una matriz [1, 2, 3, 4] . Cuando inspeccioné x, mostró que el [[prototype]] es un Array y el constructor es el objeto Array() . Al final, mostró el prototipo del objeto Array() que es Object y el constructor para que Object sea Object() . Entendí todo hasta que Object.constructor y el resultado fue Function() . ¿No debería ser Object() , en lugar de Function() ? Si el constructor de un objeto es new Object() , ¿por qué me dice que Function es el constructor? De esa manera, si creo un nuevo objeto, se instanciará así: let x = new Function() , ¿sí? Ese no fue el único. Todos los tipos de datos primitivos y de referencia dieron el mismo resultado. Aquí está el código. Estaba tan feliz cuando pensé que había captado este conocimiento y luego, de alguna manera, lo rompí. Hmmm, muy parecido a la codificación... jajaja. Gracias de antemano por explicar.

 let x = [1, 2, 3, 4]; undefined x; (4) [1, 2, 3, 4] 0: 1 1: 2 2: 3 3: 4 length: 4 **[[Prototype]]: Array(0)** at: ƒ at() concat: ƒ concat() **constructor: ƒ Array()** copyWithin: ƒ copyWithin() entries: ƒ entries() every: ƒ every() ...Many other Array methods... **[[Prototype]]: Object** **constructor: ƒ Object()** hasOwnProperty: ƒ hasOwnProperty() isPrototypeOf: ƒ isPrototypeOf() propertyIsEnumerable: ƒ propertyIsEnumerable() toLocaleString: ƒ toLocaleString() toString: ƒ toString() valueOf: ƒ valueOf() __defineGetter__: ƒ __defineGetter__() __defineSetter__: ƒ __defineSetter__() __lookupGetter__: ƒ __lookupGetter__() __lookupSetter__: ƒ __lookupSetter__() __proto__: (...) get __proto__: ƒ __proto__() set __proto__: ƒ __proto__() **Array.constructor;** *ƒ Function() { [native code] }* **Object.constructor;** *ƒ Function() { [native code] }* **Function.constructor;** *ƒ Function() { [native code] }* **String.constructor;** *ƒ Function() { [native code] }* **Boolean.constructor;** *ƒ Function() { [native code] }* **Number.constructor;** *ƒ Function() { [native code] }*
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Object es una función utilizada para construir objetos. Como es una función, su propio constructor es Function .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Creo que podría pensar de esta manera, el constructor es una función que devuelve una instancia de objeto.

Ahora, la razón por la que agrega new es que crea una nueva instancia del objeto.

Ahora la clase y la función en js son casi las mismas.

Mira el ejemplo a continuación

ejemplo de objeto

 class test { constructor(name){ this.name = name; } getName(){ return this.name; } } console.log(new test("hej").getName())

Ejemplo de función

 function test(name){ this.name = name; } test.prototype.getName =function(){ return this.name; } console.log(new test("hej").getName())

about 4 years ago · Juan Pablo Isaza 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