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

104
Views
Object.create y elimina la propiedad del objeto recién creado

Si Object.create hace una nueva copia profunda del objeto, ¿qué debería suceder después de eliminar la propiedad del objeto recién creado?

Salida esperada: indefinido

Salida real: Karna

Código

 var obj1 = {name:"Karna",loc:"Bengaluru"}; var obj2 = Object.create(obj1); delete obj2.name; console.log(obj2.name);

¿Podría ayudarme a entender por qué obj2.name todavía se refiere a la propiedad de obj1?

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Object.create crea un nuevo objeto con el argumento object como prototipo del nuevo objeto creado (consulte el __proto__ del objeto recién creado). No agrega las propiedades de obj1 a obj2 . Entonces, si invocas delete en obj2 , eliminará las propiedades de obj2 y no las del prototipo.

Ejemplo:

 var obj1 = { name: 'John' } var obj2 = Object.create(obj1); console.log(obj2.__proto__ === obj1) // returns true console.log(obj2.hasOwnProperty('name')) // returns false; console.log(obj2.name) // returns John delete obj2.name; // returns true console.log(obj2.name) // returns John, since delete will not traverse the prototype chain to delete keys

Más información: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

about 4 years ago · Santiago Gelvez Report

0

Hay dos puntos a los que debe prestar atención: 1- Object.create no hace una copia del objeto original, crea un nuevo objeto con el argumento object como prototipo del nuevo objeto creado. (la propiedad del prototipo no es una propiedad configurable) 2- el operador de eliminación solo funciona en las propiedades configurable de un objeto.

por lo tanto, las propiedades del prototipo no se pueden delete mediante el operador de eliminación, porque no se pueden configurar.

about 4 years ago · Santiago Gelvez 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!