Deleting Objects in JavaScript. I'm a bit confused with JavaScript's delete operator

I’m a bit confused with JavaScript’s delete operator.I am begginer in JS. Take the following piece of code:

function removeName (person){

   let user = {
       name : "name",
       surname: "surname"
   } ;
   console.log(delete user.name);

}
let x;
x = removeName();
console.log(x);

After this piece of code has been executed,I take as output true and undefinied, I take undefinied because I find it difficult to do object in function but true why? Please I am a beginner, so I think my code is miserable.

This confuses me, because I expected that writing delete user.name would delete it and not just throw a true one.

>Solution :

Looking at the definition of removeName, your expected to send a person. Your currently not doing that, and your placing the person inside the function too, and that would just end up scoping the person to this object.

So based on that info, this is how I assume you meant to write the code.

let user = {
  name : "name",
  surname: "surname"
};

function removeName (person){
   delete person.name;
}

removeName(user);
console.log(user);

Leave a Reply