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

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

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 Report

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 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!