> For the complete documentation index, see [llms.txt](https://choubey.gitbook.io/javascript-interview-questions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://choubey.gitbook.io/javascript-interview-questions/question-57.md).

# Question 57

### Question

Explain the difference between `Reflect.get()` and `Reflect.set()` methods.

### Answer

**1. `Reflect.get(target, propertyKey[, receiver])`:**

* **Purpose:** Accesses a value from an object, similar to using dot notation or bracket access (`object.property` or `object['property']`).
* **Parameters:**
  * `target`: The object where the property is located.
  * `propertyKey`: The name of the property you want to retrieve (as a string).
  * `receiver` (Optional): An object whose context will be used when calling getter functions on the target object. Useful for manipulating execution context.

**2. `Reflect.set(target, propertyKey, value[, receiver])`:**

* **Purpose:** Assigns a new value to a property of an object, similar to using assignment (`object.property = value`).
* **Parameters:**
  * `target`: The object whose property you want to modify.
  * `propertyKey`: The name of the property (as a string).
  * `value`: The new value to assign to the property.
  * `receiver` (Optional): Similar to `Reflect.get`, it influences context when setter functions are called.

**Key Differences:**

| Feature      | `Reflect.get()`     | `Reflect.set()`        |
| ------------ | ------------------- | ---------------------- |
| Action       | Retrieval           | Assignment             |
| Return Value | Property Value      | Boolean (true if set)  |
| Usage        | Get property values | Change property values |

**Why Use `Reflect`?**

* **Clarity:** `Reflect` methods offer a more explicit way to handle property access and modification, improving code readability.
* **Framework Integration:** They are commonly used in frameworks like React for component state management and data binding.
