자바스크립트 객체 속성 삭제(Property Deleting)

In JavaScript, objects are a fundamental part of the language. They allow us to store and manipulate data in a structured way. One crucial aspect of working with objects is managing their properties.

Sometimes, we may need to remove a property from an object. This can be achieved using the delete operator in JavaScript. Here’s how it works:

let person = {
  name: "John",
  age: 30,
  location: "New York"
};

console.log(person); // { name: "John", age: 30, location: "New York" }

delete person.age;

console.log(person); // { name: "John", location: "New York" }

In the example above, we have an object person with three properties: name, age, and location. We then use the delete operator to remove the age property from the person object. After calling delete person.age, the age property is successfully deleted, and the person object is updated without the age property.

It’s important to note that deleting a property in JavaScript does not affect the object’s prototype chain. If the property being deleted is inherited from a prototype, the prototype chain will still contain the property.

let person = {
  name: "John",
  age: 30,
  location: "New York"
};

console.log(person); // { name: "John", age: 30, location: "New York" }

delete person.toString; // Property inherited from the Object prototype

console.log(person.hasOwnProperty("toString")); // false
console.log(person.hasOwnProperty("name")); // true

In the example above, we attempt to delete the toString property from the person object. This property is inherited from the Object prototype. Even though we successfully delete it using delete person.toString, when we check whether person has the toString property using person.hasOwnProperty("toString"), it returns false. However, the other properties of the person object remain unaffected.

In conclusion, the delete operator in JavaScript allows us to remove properties from objects. It is important to be aware of the implications when deleting properties and to remember that deleting a property only affects the object itself, not its prototype chain.